window.spModuleLoader = (function() {
  var __IN_ASSEMBLY = true;

  try {
    var spScriptNamePattern = /\/sp-default-assembly(_default)?\.js/i;
    var defineCache = {};
    function define(id, deps, factory) {
      defineCache[id] = {
        deps: deps,
        factory: factory
      };
    }
define("1e384972-6346-49b4-93c7-b2e6763938e6_1.10.0", [], function() { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ 0:
/*!***********************!*\
  !*** vertx (ignored) ***!
  \***********************/
/*! no static exports found */
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "5l+x":
/*!******************************************!*\
  !*** ./lib/event/customEventPolyfill.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function customEventPolyfill() {
    // based on reference polyfill on MDN:
    // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
    var customEventKey = 'CustomEvent';
    if (typeof window[customEventKey] === 'function' ||
        // Safari
        (this.CustomEvent && this.CustomEvent.toString().indexOf('CustomEventConstructor') > -1)) {
        return;
    }
    // tslint:disable-next-line:no-any
    function customEvent(event, params) {
        params = params || {
            bubbles: false,
            cancelable: false,
            detail: undefined
        };
        var evt = document.createEvent(customEventKey); // tslint:disable-line:no-any
        evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
        return evt;
    }
    var genericEventKey = 'Event';
    customEvent.prototype = window[genericEventKey].prototype;
    window[customEventKey] = customEvent;
}
exports.customEventPolyfill = customEventPolyfill;


/***/ }),

/***/ "6J7w":
/*!*******************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/whatwg-fetch/2.0.3/node_modules/whatwg-fetch/fetch.js ***!
  \*******************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function(self) {
  'use strict';

  if (self.fetch) {
    return
  }

  var support = {
    searchParams: 'URLSearchParams' in self,
    iterable: 'Symbol' in self && 'iterator' in Symbol,
    blob: 'FileReader' in self && 'Blob' in self && (function() {
      try {
        new Blob()
        return true
      } catch(e) {
        return false
      }
    })(),
    formData: 'FormData' in self,
    arrayBuffer: 'ArrayBuffer' in self
  }

  if (support.arrayBuffer) {
    var viewClasses = [
      '[object Int8Array]',
      '[object Uint8Array]',
      '[object Uint8ClampedArray]',
      '[object Int16Array]',
      '[object Uint16Array]',
      '[object Int32Array]',
      '[object Uint32Array]',
      '[object Float32Array]',
      '[object Float64Array]'
    ]

    var isDataView = function(obj) {
      return obj && DataView.prototype.isPrototypeOf(obj)
    }

    var isArrayBufferView = ArrayBuffer.isView || function(obj) {
      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
    }
  }

  function normalizeName(name) {
    if (typeof name !== 'string') {
      name = String(name)
    }
    if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
      throw new TypeError('Invalid character in header field name')
    }
    return name.toLowerCase()
  }

  function normalizeValue(value) {
    if (typeof value !== 'string') {
      value = String(value)
    }
    return value
  }

  // Build a destructive iterator for the value list
  function iteratorFor(items) {
    var iterator = {
      next: function() {
        var value = items.shift()
        return {done: value === undefined, value: value}
      }
    }

    if (support.iterable) {
      iterator[Symbol.iterator] = function() {
        return iterator
      }
    }

    return iterator
  }

  function Headers(headers) {
    this.map = {}

    if (headers instanceof Headers) {
      headers.forEach(function(value, name) {
        this.append(name, value)
      }, this)
    } else if (Array.isArray(headers)) {
      headers.forEach(function(header) {
        this.append(header[0], header[1])
      }, this)
    } else if (headers) {
      Object.getOwnPropertyNames(headers).forEach(function(name) {
        this.append(name, headers[name])
      }, this)
    }
  }

  Headers.prototype.append = function(name, value) {
    name = normalizeName(name)
    value = normalizeValue(value)
    var oldValue = this.map[name]
    this.map[name] = oldValue ? oldValue+','+value : value
  }

  Headers.prototype['delete'] = function(name) {
    delete this.map[normalizeName(name)]
  }

  Headers.prototype.get = function(name) {
    name = normalizeName(name)
    return this.has(name) ? this.map[name] : null
  }

  Headers.prototype.has = function(name) {
    return this.map.hasOwnProperty(normalizeName(name))
  }

  Headers.prototype.set = function(name, value) {
    this.map[normalizeName(name)] = normalizeValue(value)
  }

  Headers.prototype.forEach = function(callback, thisArg) {
    for (var name in this.map) {
      if (this.map.hasOwnProperty(name)) {
        callback.call(thisArg, this.map[name], name, this)
      }
    }
  }

  Headers.prototype.keys = function() {
    var items = []
    this.forEach(function(value, name) { items.push(name) })
    return iteratorFor(items)
  }

  Headers.prototype.values = function() {
    var items = []
    this.forEach(function(value) { items.push(value) })
    return iteratorFor(items)
  }

  Headers.prototype.entries = function() {
    var items = []
    this.forEach(function(value, name) { items.push([name, value]) })
    return iteratorFor(items)
  }

  if (support.iterable) {
    Headers.prototype[Symbol.iterator] = Headers.prototype.entries
  }

  function consumed(body) {
    if (body.bodyUsed) {
      return Promise.reject(new TypeError('Already read'))
    }
    body.bodyUsed = true
  }

  function fileReaderReady(reader) {
    return new Promise(function(resolve, reject) {
      reader.onload = function() {
        resolve(reader.result)
      }
      reader.onerror = function() {
        reject(reader.error)
      }
    })
  }

  function readBlobAsArrayBuffer(blob) {
    var reader = new FileReader()
    var promise = fileReaderReady(reader)
    reader.readAsArrayBuffer(blob)
    return promise
  }

  function readBlobAsText(blob) {
    var reader = new FileReader()
    var promise = fileReaderReady(reader)
    reader.readAsText(blob)
    return promise
  }

  function readArrayBufferAsText(buf) {
    var view = new Uint8Array(buf)
    var chars = new Array(view.length)

    for (var i = 0; i < view.length; i++) {
      chars[i] = String.fromCharCode(view[i])
    }
    return chars.join('')
  }

  function bufferClone(buf) {
    if (buf.slice) {
      return buf.slice(0)
    } else {
      var view = new Uint8Array(buf.byteLength)
      view.set(new Uint8Array(buf))
      return view.buffer
    }
  }

  function Body() {
    this.bodyUsed = false

    this._initBody = function(body) {
      this._bodyInit = body
      if (!body) {
        this._bodyText = ''
      } else if (typeof body === 'string') {
        this._bodyText = body
      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
        this._bodyBlob = body
      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
        this._bodyFormData = body
      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
        this._bodyText = body.toString()
      } else if (support.arrayBuffer && support.blob && isDataView(body)) {
        this._bodyArrayBuffer = bufferClone(body.buffer)
        // IE 10-11 can't handle a DataView body.
        this._bodyInit = new Blob([this._bodyArrayBuffer])
      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
        this._bodyArrayBuffer = bufferClone(body)
      } else {
        throw new Error('unsupported BodyInit type')
      }

      if (!this.headers.get('content-type')) {
        if (typeof body === 'string') {
          this.headers.set('content-type', 'text/plain;charset=UTF-8')
        } else if (this._bodyBlob && this._bodyBlob.type) {
          this.headers.set('content-type', this._bodyBlob.type)
        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
        }
      }
    }

    if (support.blob) {
      this.blob = function() {
        var rejected = consumed(this)
        if (rejected) {
          return rejected
        }

        if (this._bodyBlob) {
          return Promise.resolve(this._bodyBlob)
        } else if (this._bodyArrayBuffer) {
          return Promise.resolve(new Blob([this._bodyArrayBuffer]))
        } else if (this._bodyFormData) {
          throw new Error('could not read FormData body as blob')
        } else {
          return Promise.resolve(new Blob([this._bodyText]))
        }
      }

      this.arrayBuffer = function() {
        if (this._bodyArrayBuffer) {
          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
        } else {
          return this.blob().then(readBlobAsArrayBuffer)
        }
      }
    }

    this.text = function() {
      var rejected = consumed(this)
      if (rejected) {
        return rejected
      }

      if (this._bodyBlob) {
        return readBlobAsText(this._bodyBlob)
      } else if (this._bodyArrayBuffer) {
        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
      } else if (this._bodyFormData) {
        throw new Error('could not read FormData body as text')
      } else {
        return Promise.resolve(this._bodyText)
      }
    }

    if (support.formData) {
      this.formData = function() {
        return this.text().then(decode)
      }
    }

    this.json = function() {
      return this.text().then(JSON.parse)
    }

    return this
  }

  // HTTP methods whose capitalization should be normalized
  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']

  function normalizeMethod(method) {
    var upcased = method.toUpperCase()
    return (methods.indexOf(upcased) > -1) ? upcased : method
  }

  function Request(input, options) {
    options = options || {}
    var body = options.body

    if (input instanceof Request) {
      if (input.bodyUsed) {
        throw new TypeError('Already read')
      }
      this.url = input.url
      this.credentials = input.credentials
      if (!options.headers) {
        this.headers = new Headers(input.headers)
      }
      this.method = input.method
      this.mode = input.mode
      if (!body && input._bodyInit != null) {
        body = input._bodyInit
        input.bodyUsed = true
      }
    } else {
      this.url = String(input)
    }

    this.credentials = options.credentials || this.credentials || 'omit'
    if (options.headers || !this.headers) {
      this.headers = new Headers(options.headers)
    }
    this.method = normalizeMethod(options.method || this.method || 'GET')
    this.mode = options.mode || this.mode || null
    this.referrer = null

    if ((this.method === 'GET' || this.method === 'HEAD') && body) {
      throw new TypeError('Body not allowed for GET or HEAD requests')
    }
    this._initBody(body)
  }

  Request.prototype.clone = function() {
    return new Request(this, { body: this._bodyInit })
  }

  function decode(body) {
    var form = new FormData()
    body.trim().split('&').forEach(function(bytes) {
      if (bytes) {
        var split = bytes.split('=')
        var name = split.shift().replace(/\+/g, ' ')
        var value = split.join('=').replace(/\+/g, ' ')
        form.append(decodeURIComponent(name), decodeURIComponent(value))
      }
    })
    return form
  }

  function parseHeaders(rawHeaders) {
    var headers = new Headers()
    rawHeaders.split(/\r?\n/).forEach(function(line) {
      var parts = line.split(':')
      var key = parts.shift().trim()
      if (key) {
        var value = parts.join(':').trim()
        headers.append(key, value)
      }
    })
    return headers
  }

  Body.call(Request.prototype)

  function Response(bodyInit, options) {
    if (!options) {
      options = {}
    }

    this.type = 'default'
    this.status = 'status' in options ? options.status : 200
    this.ok = this.status >= 200 && this.status < 300
    this.statusText = 'statusText' in options ? options.statusText : 'OK'
    this.headers = new Headers(options.headers)
    this.url = options.url || ''
    this._initBody(bodyInit)
  }

  Body.call(Response.prototype)

  Response.prototype.clone = function() {
    return new Response(this._bodyInit, {
      status: this.status,
      statusText: this.statusText,
      headers: new Headers(this.headers),
      url: this.url
    })
  }

  Response.error = function() {
    var response = new Response(null, {status: 0, statusText: ''})
    response.type = 'error'
    return response
  }

  var redirectStatuses = [301, 302, 303, 307, 308]

  Response.redirect = function(url, status) {
    if (redirectStatuses.indexOf(status) === -1) {
      throw new RangeError('Invalid status code')
    }

    return new Response(null, {status: status, headers: {location: url}})
  }

  self.Headers = Headers
  self.Request = Request
  self.Response = Response

  self.fetch = function(input, init) {
    return new Promise(function(resolve, reject) {
      var request = new Request(input, init)
      var xhr = new XMLHttpRequest()

      xhr.onload = function() {
        var options = {
          status: xhr.status,
          statusText: xhr.statusText,
          headers: parseHeaders(xhr.getAllResponseHeaders() || '')
        }
        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
        var body = 'response' in xhr ? xhr.response : xhr.responseText
        resolve(new Response(body, options))
      }

      xhr.onerror = function() {
        reject(new TypeError('Network request failed'))
      }

      xhr.ontimeout = function() {
        reject(new TypeError('Network request failed'))
      }

      xhr.open(request.method, request.url, true)

      if (request.credentials === 'include') {
        xhr.withCredentials = true
      }

      if ('responseType' in xhr && support.blob) {
        xhr.responseType = 'blob'
      }

      request.headers.forEach(function(value, name) {
        xhr.setRequestHeader(name, value)
      })

      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
    })
  }
  self.fetch.polyfill = true
})(typeof self !== 'undefined' ? self : this);


/***/ }),

/***/ "GITq":
/*!*************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/es6-collections/0.5.6/node_modules/es6-collections/index.js ***!
  \*************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {(function (exports) {'use strict';
  //shared pointer
  var i;
  //shortcuts
  var defineProperty = Object.defineProperty, is = function(a,b) { return (a === b) || (a !== a && b !== b) };


  //Polyfill global objects
  if (typeof WeakMap == 'undefined') {
    exports.WeakMap = createCollection({
      // WeakMap#delete(key:void*):boolean
      'delete': sharedDelete,
      // WeakMap#clear():
      clear: sharedClear,
      // WeakMap#get(key:void*):void*
      get: sharedGet,
      // WeakMap#has(key:void*):boolean
      has: mapHas,
      // WeakMap#set(key:void*, value:void*):void
      set: sharedSet
    }, true);
  }

  if (typeof Map == 'undefined' || typeof ((new Map).values) !== 'function' || !(new Map).values().next) {
    exports.Map = createCollection({
      // WeakMap#delete(key:void*):boolean
      'delete': sharedDelete,
      //:was Map#get(key:void*[, d3fault:void*]):void*
      // Map#has(key:void*):boolean
      has: mapHas,
      // Map#get(key:void*):boolean
      get: sharedGet,
      // Map#set(key:void*, value:void*):void
      set: sharedSet,
      // Map#keys(void):Iterator
      keys: sharedKeys,
      // Map#values(void):Iterator
      values: sharedValues,
      // Map#entries(void):Iterator
      entries: mapEntries,
      // Map#forEach(callback:Function, context:void*):void ==> callback.call(context, key, value, mapObject) === not in specs`
      forEach: sharedForEach,
      // Map#clear():
      clear: sharedClear
    });
  }

  if (typeof Set == 'undefined' || typeof ((new Set).values) !== 'function' || !(new Set).values().next) {
    exports.Set = createCollection({
      // Set#has(value:void*):boolean
      has: setHas,
      // Set#add(value:void*):boolean
      add: sharedAdd,
      // Set#delete(key:void*):boolean
      'delete': sharedDelete,
      // Set#clear():
      clear: sharedClear,
      // Set#keys(void):Iterator
      keys: sharedValues, // specs actually say "the same function object as the initial value of the values property"
      // Set#values(void):Iterator
      values: sharedValues,
      // Set#entries(void):Iterator
      entries: setEntries,
      // Set#forEach(callback:Function, context:void*):void ==> callback.call(context, value, index) === not in specs
      forEach: sharedForEach
    });
  }

  if (typeof WeakSet == 'undefined') {
    exports.WeakSet = createCollection({
      // WeakSet#delete(key:void*):boolean
      'delete': sharedDelete,
      // WeakSet#add(value:void*):boolean
      add: sharedAdd,
      // WeakSet#clear():
      clear: sharedClear,
      // WeakSet#has(value:void*):boolean
      has: setHas
    }, true);
  }


  /**
   * ES6 collection constructor
   * @return {Function} a collection class
   */
  function createCollection(proto, objectOnly){
    function Collection(a){
      if (!this || this.constructor !== Collection) return new Collection(a);
      this._keys = [];
      this._values = [];
      this._itp = []; // iteration pointers
      this.objectOnly = objectOnly;

      //parse initial iterable argument passed
      if (a) init.call(this, a);
    }

    //define size for non object-only collections
    if (!objectOnly) {
      defineProperty(proto, 'size', {
        get: sharedSize
      });
    }

    //set prototype
    proto.constructor = Collection;
    Collection.prototype = proto;

    return Collection;
  }


  /** parse initial iterable argument passed */
  function init(a){
    var i;
    //init Set argument, like `[1,2,3,{}]`
    if (this.add)
      a.forEach(this.add, this);
    //init Map argument like `[[1,2], [{}, 4]]`
    else
      a.forEach(function(a){this.set(a[0],a[1])}, this);
  }


  /** delete */
  function sharedDelete(key) {
    if (this.has(key)) {
      this._keys.splice(i, 1);
      this._values.splice(i, 1);
      // update iteration pointers
      this._itp.forEach(function(p) { if (i < p[0]) p[0]--; });
    }
    // Aurora here does it while Canary doesn't
    return -1 < i;
  };

  function sharedGet(key) {
    return this.has(key) ? this._values[i] : undefined;
  }

  function has(list, key) {
    if (this.objectOnly && key !== Object(key))
      throw new TypeError("Invalid value used as weak collection key");
    //NaN or 0 passed
    if (key != key || key === 0) for (i = list.length; i-- && !is(list[i], key);){}
    else i = list.indexOf(key);
    return -1 < i;
  }

  function setHas(value) {
    return has.call(this, this._values, value);
  }

  function mapHas(value) {
    return has.call(this, this._keys, value);
  }

  /** @chainable */
  function sharedSet(key, value) {
    this.has(key) ?
      this._values[i] = value
      :
      this._values[this._keys.push(key) - 1] = value
    ;
    return this;
  }

  /** @chainable */
  function sharedAdd(value) {
    if (!this.has(value)) this._values.push(value);
    return this;
  }

  function sharedClear() {
    (this._keys || 0).length =
    this._values.length = 0;
  }

  /** keys, values, and iterate related methods */
  function sharedKeys() {
    return sharedIterator(this._itp, this._keys);
  }

  function sharedValues() {
    return sharedIterator(this._itp, this._values);
  }

  function mapEntries() {
    return sharedIterator(this._itp, this._keys, this._values);
  }

  function setEntries() {
    return sharedIterator(this._itp, this._values, this._values);
  }

  function sharedIterator(itp, array, array2) {
    var p = [0], done = false;
    itp.push(p);
    return {
      next: function() {
        var v, k = p[0];
        if (!done && k < array.length) {
          v = array2 ? [array[k], array2[k]]: array[k];
          p[0]++;
        } else {
          done = true;
          itp.splice(itp.indexOf(p), 1);
        }
        return { done: done, value: v };
      }
    };
  }

  function sharedSize() {
    return this._values.length;
  }

  function sharedForEach(callback, context) {
    var it = this.entries();
    for (;;) {
      var r = it.next();
      if (r.done) break;
      callback.call(context, r.value[1], r.value[0], this);
    }
  }

})( true && typeof global != 'undefined' ? global : window );

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

/***/ }),

/***/ "JkCn":
/*!**************************************!*\
  !*** ./lib/string/stringPolyfill.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function stringPolyfill() {
    // based on reference polyfill on MDN:
    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
    // @ts-ignore Workaround the TypeScript check on `String.prototype.endsWith`
    if (!String.prototype.endsWith) {
        // @ts-ignore
        String.prototype.endsWith = function (search, thisLen) {
            if (thisLen === undefined || thisLen > this.length) {
                thisLen = this.length;
            }
            return this.substring(thisLen - search.length, thisLen) === search;
        };
    }
    // based on reference polyfill on MDN:
    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
    // @ts-ignore Workaround the TypeScript check on `String.prototype.startsWith`
    if (!String.prototype.startsWith) {
        Object.defineProperty(String.prototype, 'startsWith', {
            value: function (search, pos) {
                pos = !pos || pos < 0 ? 0 : +pos;
                return this.substring(pos, pos + search.length) === search;
            }
        });
    }
}
exports.stringPolyfill = stringPolyfill;


/***/ }),

/***/ "QDMq":
/*!********************************************!*\
  !*** ./lib/object/createAssignPolyfill.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// based on reference polyfill on MDN:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill
function createAssignPolyfill() {
    if (typeof Object.assign !== 'function') {
        Object.defineProperty(Object, 'assign', {
            value: function (target) {
                var args = [];
                for (var _i = 1; _i < arguments.length; _i++) {
                    args[_i - 1] = arguments[_i];
                }
                if (!target) {
                    throw new TypeError('Cannot convert undefined or null to object');
                }
                var to = Object(target);
                for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
                    var nextSource = args_1[_a];
                    if (nextSource) {
                        for (var nextKey in nextSource) {
                            if (nextSource.hasOwnProperty(nextKey)) {
                                to[nextKey] = nextSource[nextKey];
                            }
                        }
                    }
                }
                return to;
            },
            writable: true,
            configurable: true
        });
    }
}
exports.createAssignPolyfill = createAssignPolyfill;


/***/ }),

/***/ "QGqo":
/*!************************!*\
  !*** ./lib/url/URL.js ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/**
 * This is an incomplete implementation of a URL polyfill. These things are not supported, or not fully supported:
 *  - baseURLString constructor property
 *      This means that `new URL('http://contoso.com/path/to/something', 'http://fabrikam.com')` will not work,
 *        but the same thing can be accomplished with:
 *      const url = new new URL('http://contoso.com/path/to/something');
 *      url.host = 'fabrikam.com';
 *
 *  - Username
 *      The username property is not supported and will always return the empty string. Setting the username has
 *        no effect.
 *
 *  - Password
 *      The password property is not supported and will always return the empty string. Setting the password has
 *        no effect.
 *
 *  - Setting the pathname property with a value containing encoded values will double-encode the encoded values.
 *      For example. myUrl.pathname = "path%2Bto/resource.json" => myUrl.pathname === "/path%252Bto/resource.json"
 *      To set the pathname to a value that contains a special character, set it with the un-encoded character.
 *      The encoded "/" character (%2F) is not supported
 *
 * MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/URL
 *
 * WhatWG Spec: https://url.spec.whatwg.org/
 */
var __extends = (this && this.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
var BaseURL_1 = __webpack_require__(/*! ./BaseURL */ "c4xp");
var SPECIAL_SCHEMES_AND_PORTS = {
    'ftp:': '21',
    'gopher:': '70',
    'http:': '80',
    'https:': '443',
    'ws:': '80',
    'wss:': '443'
};
/**
 * Ensures the URL has a scheme
 */
function urlIsValid(url) {
    return !!url.match(/^.+\:/);
}
var URL = /** @class */ (function (_super) {
    __extends(URL, _super);
    function URL(url, baseURLString) {
        var _this = _super.call(this, url, baseURLString) || this;
        if (baseURLString) {
            throw new Error('baseURLString parameter is not supported by the URL polyfill.');
        }
        _this._shadowDocument = document.implementation.createHTMLDocument('');
        _this._innerAnchorElement = _this._shadowDocument.createElement('a');
        // Reassigning url from the <a> tag's href absolutizes it
        _this._innerAnchorElement.href = url;
        if (!urlIsValid(_this._innerAnchorElement.href)) {
            throw new TypeError('Invalid URL');
        }
        _this._initializeSearchParams();
        return _this;
    }
    Object.defineProperty(URL.prototype, "href", {
        get: function () {
            var result = this._innerAnchorElement.href;
            if (this._hashHashBeenCleared) {
                if (result.match(/\#$/)) {
                    result = result.substr(0, result.length - 1);
                }
                if (this._searchHasBeenCleared && result.match(/\?$/)) {
                    result = result.substr(0, result.length - 1);
                }
            }
            else if (this._searchHasBeenCleared) {
                var firstIndexOfHash = result.indexOf('#');
                if (firstIndexOfHash === -1) {
                    // No fragment
                    if (result.match(/\?$/)) {
                        result = result.substr(0, result.length - 1);
                    }
                }
                else if (result.charAt(firstIndexOfHash - 1) === '?') {
                    result = result.substring(0, firstIndexOfHash - 1) + result.substr(firstIndexOfHash);
                }
            }
            return result;
        },
        set: function (newValue) {
            if (!urlIsValid(newValue)) {
                throw new TypeError('Invalid URL');
            }
            this._invalidate();
            this._innerAnchorElement.href = newValue;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "origin", {
        get: function () {
            if (SPECIAL_SCHEMES_AND_PORTS.hasOwnProperty(this.protocol)) {
                if (!this.port || SPECIAL_SCHEMES_AND_PORTS[this.protocol] === this.port) {
                    // Standard port, don't serialize the port
                    return this.protocol + "//" + this._innerAnchorElement.hostname;
                }
                else {
                    // Non-standard port, serialize the port
                    return this.protocol + "//" + this._innerAnchorElement.hostname + ":" + this.port;
                }
            }
            else {
                return 'null';
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "protocol", {
        get: function () {
            return this._innerAnchorElement.protocol;
        },
        set: function (newValue) {
            // Trim the trailing ":" and serialize "null" or "undefined" as a weird caveat of the spec
            var protocolMatches = ("" + newValue).match(/^([^\:]+):?$/);
            if (protocolMatches) {
                this._invalidate();
                this._innerAnchorElement.protocol = protocolMatches[1] + ":";
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "username", {
        get: function () {
            return ''; // Not supported
        },
        set: function (newValue) {
            // Not supported
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "password", {
        get: function () {
            return ''; // Not supported
        },
        set: function (newValue) {
            // Not supported
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "host", {
        get: function () {
            return this._innerAnchorElement.host;
        },
        set: function (newValue) {
            this._invalidate();
            this._innerAnchorElement.host = newValue;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "hostname", {
        get: function () {
            return this._innerAnchorElement.hostname;
        },
        set: function (newValue) {
            this._invalidate();
            this._innerAnchorElement.hostname = newValue;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "port", {
        get: function () {
            return this._innerAnchorElement.port;
        },
        set: function (newValue) {
            this._invalidate();
            if (newValue) {
                this._innerAnchorElement.port = newValue;
            }
            else {
                this._innerAnchorElement.port = SPECIAL_SCHEMES_AND_PORTS[this.protocol] || newValue;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "pathname", {
        get: function () {
            return this._innerAnchorElement.pathname;
        },
        set: function (newValue) {
            this._invalidate();
            this._innerAnchorElement.pathname = newValue;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "hash", {
        get: function () {
            return this._innerAnchorElement.hash;
        },
        set: function (newValue) {
            this._invalidate();
            this._innerAnchorElement.hash = '';
            // Trim the leading "#" and serialize "null" or "undefined" as a weird caveat of the spec
            var fragmentMatches = ("" + newValue).match(/^#?(.*)/);
            if (fragmentMatches && !!fragmentMatches[1]) {
                this._innerAnchorElement.hash = fragmentMatches[1];
                this._hashHashBeenCleared = false;
            }
            else {
                this._hashHashBeenCleared = true;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(URL.prototype, "_query", {
        get: function () {
            return this._innerAnchorElement.search;
        },
        set: function (newValue) {
            this._innerAnchorElement.search = '';
            if (!!newValue) {
                this._innerAnchorElement.search = newValue;
                this._searchHasBeenCleared = false;
            }
            else {
                this._searchHasBeenCleared = true;
            }
        },
        enumerable: true,
        configurable: true
    });
    URL.prototype._invalidate = function () { };
    return URL;
}(BaseURL_1.default));
exports.default = URL;


/***/ }),

/***/ "UkM9":
/*!************************************!*\
  !*** ./lib/url/URLSearchParams.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/**
 * Polyfill for the URLSearchParams class.
 *
 * MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
 *
 * WhatWG Spec: https://url.spec.whatwg.org/
 */
Object.defineProperty(exports, "__esModule", { value: true });
var isIterable = typeof window === 'undefined' || 'Symbol' in window && 'iterator' in Symbol;
var URLSearchParams = /** @class */ (function () {
    function URLSearchParams(init) {
        this._initialize(init);
    }
    /**
     * Parser following this spec: https://url.spec.whatwg.org/#concept-urlencoded-parser
     */
    URLSearchParams._getParamterPairsFromString = function (str) {
        var strMatches = str.match(/\??(.*)/);
        if (strMatches) {
            str = strMatches[1];
        }
        else {
            // Unexpected format. Return nothing
            return [];
        }
        return (str.split('&') || []).filter(function (token) { return token; }).map(function (token) {
            var splitIndex = token.indexOf('=');
            var key = '';
            var value = '';
            if (splitIndex === -1) {
                // No "=" -> Empty value
                key = token;
            }
            else if (splitIndex === 0) {
                // "=" is the first character -> empty key
                value = token.substr(1);
            }
            else {
                key = token.substring(0, splitIndex);
                value = token.substr(splitIndex + 1);
            }
            // Replace "+" with space
            key = key.replace(/\+/g, ' ');
            value = value.replace(/\+/g, ' ');
            // Decode the key and value
            key = decodeURIComponent(key);
            value = decodeURIComponent(value);
            return { key: key, value: value };
        });
    };
    URLSearchParams.prototype.append = function (key, value) {
        this._queryParameterList.push({ key: key, value: value });
        this._update();
    };
    URLSearchParams.prototype.delete = function (key) {
        for (var i = 0; i < this._queryParameterList.length; i++) {
            if (this._queryParameterList[i].key === key) {
                this._queryParameterList.splice(i, 1);
                i--;
            }
        }
        this._update();
    };
    URLSearchParams.prototype.entries = function () {
        return this._iteratorFor(this._queryParameterList.map(function (pair) { return [pair.key, pair.value]; }));
    };
    URLSearchParams.prototype.get = function (key) {
        for (var i = 0; i < this._queryParameterList.length; i++) {
            if (this._queryParameterList[i].key === key) {
                return this._queryParameterList[i].value;
            }
        }
        return null; // tslint:disable-line:no-null-keyword
    };
    URLSearchParams.prototype.getAll = function (key) {
        var result = [];
        for (var i = 0; i < this._queryParameterList.length; i++) {
            if (this._queryParameterList[i].key === key) {
                result.push(this._queryParameterList[i].value);
            }
        }
        return result;
    };
    URLSearchParams.prototype.has = function (key) {
        for (var i = 0; i < this._queryParameterList.length; i++) {
            if (this._queryParameterList[i].key === key) {
                return true;
            }
        }
        return false; // tslint:disable-line:no-null-keyword
    };
    URLSearchParams.prototype.keys = function () {
        return this._iteratorFor(this._queryParameterList.map(function (pair) { return pair.key; }));
    };
    URLSearchParams.prototype.set = function (key, value) {
        var found = false;
        for (var i = 0; i < this._queryParameterList.length; i++) {
            if (this._queryParameterList[i].key === key) {
                if (found) {
                    // Already found a matching key - remove the rest
                    this._queryParameterList.splice(i, 1);
                    i--;
                }
                else {
                    found = true;
                    this._queryParameterList[i].value = value;
                }
            }
        }
        if (!found) {
            this.append(key, value);
            // No need to call _update() here because append() calls it.
        }
        else {
            this._update();
        }
    };
    URLSearchParams.prototype.sort = function () {
        this._queryParameterList.sort(function (a, b) { return a.key.localeCompare(b.key); });
        this._update();
    };
    URLSearchParams.prototype.forEach = function (callbackfn) {
        var _this = this;
        this._queryParameterList.forEach(function (pair) { return callbackfn(pair.value, pair.key, _this); });
    };
    URLSearchParams.prototype.toString = function () {
        return this._queryParameterList.map(function (_a) {
            var key = _a.key, value = _a.value;
            return encodeURIComponent(key) + "=" + encodeURIComponent(value);
        }).join('&');
    };
    URLSearchParams.prototype.values = function () {
        return this._iteratorFor(this._queryParameterList.map(function (pair) { return pair.value; }));
    };
    URLSearchParams.prototype._update = function () {
        if (this._url) {
            this._url.search = this.toString();
        }
    };
    URLSearchParams.prototype._initialize = function (init) {
        this._queryParameterList = [];
        if (Array.isArray(init)) {
            // Array
            for (var _i = 0, init_1 = init; _i < init_1.length; _i++) {
                var element = init_1[_i];
                if (!Array.isArray(element) || element.length !== 2) {
                    // Must be an array of two-element arrays
                    throw new TypeError('All elements in init sequence must have exactly two elements');
                }
                else {
                    this._queryParameterList.push({
                        key: element[0],
                        value: element[1]
                    });
                }
            }
        }
        else if (typeof init === 'object') {
            // Dictionary
            for (var key in init) {
                if (init.hasOwnProperty(key)) {
                    this._queryParameterList.push({
                        key: key,
                        value: init[key]
                    });
                }
            }
        }
        else if (typeof init === 'string') {
            // String
            this._queryParameterList = URLSearchParams._getParamterPairsFromString(init);
        }
        else {
            // do nothing
        }
    };
    URLSearchParams.prototype._iteratorFor = function (items) {
        var index = 0;
        var iterator = {
            next: function () {
                var value = items[index++];
                return { done: value === undefined, value: value };
            }
        };
        if (isIterable) {
            iterator[Symbol.iterator] = function () { return iterator; };
        }
        return iterator;
    };
    return URLSearchParams;
}());
exports.default = URLSearchParams;


/***/ }),

/***/ "Za/J":
/*!*************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/process/0.11.10/node_modules/process/browser.js ***!
  \*************************************************************************************************************************************/
/*! no static exports found */
/***/ (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; };


/***/ }),

/***/ "ZjOg":
/*!**********************************!*\
  !*** ./lib/url/UrlFillHelper.js ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function urlIsPresent() {
    if (typeof window.URL === 'undefined') {
        return false;
    }
    try {
        var url = new window.URL('http://contoso.com?a=b');
        return url.searchParams.get('a') === 'b';
    }
    catch (e) {
        return false;
    }
}
function urlSearchParamsIsPresent() {
    if (typeof window['URLSearchParams'] === 'undefined') { // tslint:disable-line:no-string-literal
        return false;
    }
    try {
        new URLSearchParams('?a=b&c=d'); // tslint:disable-line:no-unused-expression
        // tslint:disable:no-string-literal
        return !!(URLSearchParams.prototype['keys'] &&
            URLSearchParams.prototype['values'] &&
            URLSearchParams.prototype['entries']);
        // tslint:enable:no-string-literal
    }
    catch (e) {
        return false;
    }
}
/**
 * Fills the window.URL class if it doesn't already exist or if its implementation is incorrect
 */
function fillUrlIfNecessary(URL) {
    // 'window' isn't defined in mocha test
    if (typeof window !== 'undefined' && (!urlIsPresent() || !urlSearchParamsIsPresent())) {
        window.URL = URL();
    }
}
exports.fillUrlIfNecessary = fillUrlIfNecessary;
/**
 * Fills the window.URLSearchParams class if it doesn't already exist or if its implementation is incorrect
 */
// tslint:disable-next-line:no-any variable-name
function fillUrlSearchParamsIfNecessary(URLSearchParams) {
    if (typeof window !== 'undefined' && (!urlIsPresent() || !urlSearchParamsIsPresent())) {
        window['URLSearchParams'] = URLSearchParams(); // tslint:disable-line:no-string-literal
    }
}
exports.fillUrlSearchParamsIfNecessary = fillUrlSearchParamsIfNecessary;


/***/ }),

/***/ "c4xp":
/*!****************************!*\
  !*** ./lib/url/BaseURL.js ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var URLSearchParams_1 = __webpack_require__(/*! ./URLSearchParams */ "UkM9");
// 'window' isn't defined in mocha test
var currentWindowUrl = window.URL;
/**
 * This class contains functionality that is common between the smaller "URL" class and the experimental
 *  complete "URL" class.
 */
var BaseURL = /** @class */ (function () {
    function BaseURL(url, base) {
    }
    BaseURL.createObjectURL = function () {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        if (currentWindowUrl.createObjectURL) {
            // Passthrough to the existing currentWindowUrl if the browser supports it
            return currentWindowUrl.createObjectURL.apply(window, args);
        }
        else {
            throw new Error('createObjectURL not supported');
        }
    };
    BaseURL.revokeObjectURL = function () {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        if (currentWindowUrl.revokeObjectURL) {
            // Passthrough to the existing revokeObjectURL if the browser supports it
            currentWindowUrl.revokeObjectURL.apply(window, args);
        }
        else {
            throw new Error('revokeObjectURL not supported');
        }
    };
    Object.defineProperty(BaseURL.prototype, "search", {
        get: function () {
            return this._query || '';
        },
        set: function (newValue) {
            this._invalidate();
            // Trim the leading "?" and serialize "null" or "undefined" as a weird caveat of the spec
            var queryMatches = ("" + newValue).match(/^\??(.*)/);
            if (queryMatches && !!queryMatches[1]) {
                this._query = queryMatches[1];
            }
            else {
                this._query = null; // tslint:disable-line:no-null-keyword
            }
            var existingSearchParams = this._searchParams.toString();
            if (existingSearchParams !== this.search && "?" + existingSearchParams !== this.search) {
                // Update searchParams
                this._searchParams._initialize(this.search); // tslint:disable-line:no-any
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseURL.prototype, "searchParams", {
        get: function () {
            return this._searchParams;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseURL.prototype, "searchparams", {
        // Need to include this because the TypeScript lib.d.ts typings have the incorrect case
        // Remove when the TS typings are fixed. VSO#339963
        get: function () {
            throw new Error('This function does not exist.');
        },
        enumerable: true,
        configurable: true
    });
    BaseURL.prototype.toJSON = function () {
        // Same behavior as "href"
        return this.href;
    };
    BaseURL.prototype._initializeSearchParams = function () {
        this._searchParams = new URLSearchParams_1.default(this.search);
        // Ensure searchParams has a pointer to this object.
        this._searchParams._url = this; // tslint:disable-line:no-any
    };
    return BaseURL;
}());
exports.default = BaseURL;


/***/ }),

/***/ "fE1I":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (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;


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// @copyright Microsoft Corporation. All rights reserved.
// @file This file contains an inventory of all of our framework's polyfills.
// All webpart and application code can rely on these libraries being polyfilled by our framework.
Object.defineProperty(exports, "__esModule", { value: true });
// ES6 Harmony Collections Polyfill
// ES6 Harmony Collections  was added as a polyfill to provide a lightweight unobtrusive shim for
// ES2015 collections. The implementations of Map, Set, and WeakMap provided by this polyfill
// adhere to the ES2015 standard. Functions that abide by the ES2015 standard such as Map.get()
// and Set.has() are guaranteed to run in sublinear time rather than the expected constant time
// for a standard hashmap implementation. (See http://stackoverflow.com/a/31092145) The alternative
// popular library to ES6 Harmony Collections is ES6 shim. After running some samples tests, we have
// determined that ES6 Harmony Collections performs better on a larger set of operations than
// the es6-shim. (Tests were run here: https://jsperf.com/es6-shim-vs-es6-collections/2 ).
// ES6 shim is also a much larger library in size.
// https://github.com/WebReflection/es6-collections
// IE11 has a bug in its native implementation of WeakMap.
// By setting the 'WeakMap' property of the window object to 'undefined',
// we will fallback to the use of the WeakMap polyfill.
if (!!window['MSInputMethodContext'] && !!document['documentMode']) { // tslint:disable-line:no-string-literal
    try {
        window['WeakMap'] = undefined; // tslint:disable-line:no-string-literal
    }
    catch (e) { /* do nothing */ }
}
__webpack_require__(/*! es6-collections */ "GITq");
// ES6 Promise Polyfill
// Adds an implementation of the ES2015-Promise to the browser. The implementation is a subset
// of rsvp.js.
// (See: https://github.com/tildeio/rsvp.js) ES6 Promise is compliant with Promises/A+
// (See: https://promisesaplus.com/)
// Very useful for using Promise in the Safari/IE/Edge (already supported by Chrome/Firefox)
// https://github.com/jakearchibald/es6-promise
var es6promise = __webpack_require__(/*! es6-promise */ "mwwN");
es6promise.polyfill();
// Window.Fetch PolyFill
// Adds an implementation of the Fetch standard to the browser.
// Very useful for using the fetch api in the Safari/IE (already supported by Chrome/Firefox/Edge)
// https://github.com/github/fetch
__webpack_require__(/*! whatwg-fetch */ "6J7w");
// Fill utility for URL types
var UrlFillHelper = __webpack_require__(/*! ./url/UrlFillHelper */ "ZjOg");
UrlFillHelper.fillUrlIfNecessary(function () { return __webpack_require__(/*! ./url/URL */ "QGqo").default; });
UrlFillHelper.fillUrlSearchParamsIfNecessary(function () { return __webpack_require__(/*! ./url/URLSearchParams */ "UkM9").default; });
// TypeScript 2.0 Typings have location.origin and performance as readonly properties.
// This is a polyfill for window.location.origin, which is not supported by the IE browser
if (!window.location.origin) {
    window.location.origin = window.location.protocol // tslint:disable-line:no-any
        + '//'
        + window.location.hostname
        + (window.location.port ? ':' + window.location.port : '');
}
// IE9 doesn't support performance.now(), so we need to polyfill that
if (!window.performance) {
    window.performance = {}; // tslint:disable-line:no-any
}
if (!window.performance.now) {
    // Polyfill performance.now with a function that returns the number of milliseconds since the module loader loaded.
    // Not as accurate as the real performance.now() function, but as accurate as we're able to get with a polyfill.
    var pageLoadTime_1 = Date.now();
    window.performance.now = function () { return Date.now() - pageLoadTime_1; };
}
// ES6 Collection Polyfill does not provide toString function for Set Object, which may cause false negative when
// checking implementation of Set if other polyfill for Set is bundled.
// Check whether toString() is implemented right, if not, provide toString for Set.
if (new Set().toString() === '[object Object]') {
    window.Set.prototype.toString = function () { return '[object Set]'; }; // tslint:disable-line:no-any
}
// IE11 does not support string startswith endswith, so we need to polyfill that
var StringPolyfill = __webpack_require__(/*! ./string/stringPolyfill */ "JkCn");
StringPolyfill.stringPolyfill();
// Object.assign is not supported by IE11 and needs to be filled for the marksy library.
var ObjectPolyfill = __webpack_require__(/*! ./object/createAssignPolyfill */ "QDMq");
ObjectPolyfill.createAssignPolyfill();
// IE11 does not support CustomEvent natively
var CustomEventPolyfill = __webpack_require__(/*! ./event/customEventPolyfill */ "5l+x");
CustomEventPolyfill.customEventPolyfill();


/***/ }),

/***/ "mwwN":
/*!****************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/es6-promise/4.1.1/node_modules/es6-promise/dist/es6-promise.js ***!
  \****************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!
 * @overview es6-promise - a tiny implementation of Promises/A+.
 * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
 * @license   Licensed under MIT license
 *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
 * @version   4.1.1
 */

(function (global, factory) {
	 true ? module.exports = factory() :
	undefined;
}(this, (function () { 'use strict';

function objectOrFunction(x) {
  var type = typeof x;
  return x !== null && (type === 'object' || type === 'function');
}

function isFunction(x) {
  return typeof x === 'function';
}

var _isArray = undefined;
if (Array.isArray) {
  _isArray = Array.isArray;
} else {
  _isArray = function (x) {
    return Object.prototype.toString.call(x) === '[object Array]';
  };
}

var isArray = _isArray;

var len = 0;
var vertxNext = undefined;
var customSchedulerFn = undefined;

var asap = function asap(callback, arg) {
  queue[len] = callback;
  queue[len + 1] = arg;
  len += 2;
  if (len === 2) {
    // If len is 2, that means that we need to schedule an async flush.
    // If additional callbacks are queued before the queue is flushed, they
    // will be processed by this flush that we are scheduling.
    if (customSchedulerFn) {
      customSchedulerFn(flush);
    } else {
      scheduleFlush();
    }
  }
};

function setScheduler(scheduleFn) {
  customSchedulerFn = scheduleFn;
}

function setAsap(asapFn) {
  asap = asapFn;
}

var browserWindow = typeof window !== 'undefined' ? window : undefined;
var browserGlobal = browserWindow || {};
var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';

// test for web worker but not in IE10
var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';

// node
function useNextTick() {
  // node version 0.10.x displays a deprecation warning when nextTick is used recursively
  // see https://github.com/cujojs/when/issues/410 for details
  return function () {
    return process.nextTick(flush);
  };
}

// vertx
function useVertxTimer() {
  if (typeof vertxNext !== 'undefined') {
    return function () {
      vertxNext(flush);
    };
  }

  return useSetTimeout();
}

function useMutationObserver() {
  var iterations = 0;
  var observer = new BrowserMutationObserver(flush);
  var node = document.createTextNode('');
  observer.observe(node, { characterData: true });

  return function () {
    node.data = iterations = ++iterations % 2;
  };
}

// web worker
function useMessageChannel() {
  var channel = new MessageChannel();
  channel.port1.onmessage = flush;
  return function () {
    return channel.port2.postMessage(0);
  };
}

function useSetTimeout() {
  // Store setTimeout reference so es6-promise will be unaffected by
  // other code modifying setTimeout (like sinon.useFakeTimers())
  var globalSetTimeout = setTimeout;
  return function () {
    return globalSetTimeout(flush, 1);
  };
}

var queue = new Array(1000);
function flush() {
  for (var i = 0; i < len; i += 2) {
    var callback = queue[i];
    var arg = queue[i + 1];

    callback(arg);

    queue[i] = undefined;
    queue[i + 1] = undefined;
  }

  len = 0;
}

function attemptVertx() {
  try {
    var r = require;
    var vertx = __webpack_require__(/*! vertx */ 0);
    vertxNext = vertx.runOnLoop || vertx.runOnContext;
    return useVertxTimer();
  } catch (e) {
    return useSetTimeout();
  }
}

var scheduleFlush = undefined;
// Decide what async method to use to triggering processing of queued callbacks:
if (isNode) {
  scheduleFlush = useNextTick();
} else if (BrowserMutationObserver) {
  scheduleFlush = useMutationObserver();
} else if (isWorker) {
  scheduleFlush = useMessageChannel();
} else if (browserWindow === undefined && "function" === 'function') {
  scheduleFlush = attemptVertx();
} else {
  scheduleFlush = useSetTimeout();
}

function then(onFulfillment, onRejection) {
  var _arguments = arguments;

  var parent = this;

  var child = new this.constructor(noop);

  if (child[PROMISE_ID] === undefined) {
    makePromise(child);
  }

  var _state = parent._state;

  if (_state) {
    (function () {
      var callback = _arguments[_state - 1];
      asap(function () {
        return invokeCallback(_state, child, callback, parent._result);
      });
    })();
  } else {
    subscribe(parent, child, onFulfillment, onRejection);
  }

  return child;
}

/**
  `Promise.resolve` returns a promise that will become resolved with the
  passed `value`. It is shorthand for the following:

  ```javascript
  let promise = new Promise(function(resolve, reject){
    resolve(1);
  });

  promise.then(function(value){
    // value === 1
  });
  ```

  Instead of writing the above, your code now simply becomes the following:

  ```javascript
  let promise = Promise.resolve(1);

  promise.then(function(value){
    // value === 1
  });
  ```

  @method resolve
  @static
  @param {Any} value value that the returned promise will be resolved with
  Useful for tooling.
  @return {Promise} a promise that will become fulfilled with the given
  `value`
*/
function resolve$1(object) {
  /*jshint validthis:true */
  var Constructor = this;

  if (object && typeof object === 'object' && object.constructor === Constructor) {
    return object;
  }

  var promise = new Constructor(noop);
  resolve(promise, object);
  return promise;
}

var PROMISE_ID = Math.random().toString(36).substring(16);

function noop() {}

var PENDING = void 0;
var FULFILLED = 1;
var REJECTED = 2;

var GET_THEN_ERROR = new ErrorObject();

function selfFulfillment() {
  return new TypeError("You cannot resolve a promise with itself");
}

function cannotReturnOwn() {
  return new TypeError('A promises callback cannot return that same promise.');
}

function getThen(promise) {
  try {
    return promise.then;
  } catch (error) {
    GET_THEN_ERROR.error = error;
    return GET_THEN_ERROR;
  }
}

function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
  try {
    then$$1.call(value, fulfillmentHandler, rejectionHandler);
  } catch (e) {
    return e;
  }
}

function handleForeignThenable(promise, thenable, then$$1) {
  asap(function (promise) {
    var sealed = false;
    var error = tryThen(then$$1, thenable, function (value) {
      if (sealed) {
        return;
      }
      sealed = true;
      if (thenable !== value) {
        resolve(promise, value);
      } else {
        fulfill(promise, value);
      }
    }, function (reason) {
      if (sealed) {
        return;
      }
      sealed = true;

      reject(promise, reason);
    }, 'Settle: ' + (promise._label || ' unknown promise'));

    if (!sealed && error) {
      sealed = true;
      reject(promise, error);
    }
  }, promise);
}

function handleOwnThenable(promise, thenable) {
  if (thenable._state === FULFILLED) {
    fulfill(promise, thenable._result);
  } else if (thenable._state === REJECTED) {
    reject(promise, thenable._result);
  } else {
    subscribe(thenable, undefined, function (value) {
      return resolve(promise, value);
    }, function (reason) {
      return reject(promise, reason);
    });
  }
}

function handleMaybeThenable(promise, maybeThenable, then$$1) {
  if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
    handleOwnThenable(promise, maybeThenable);
  } else {
    if (then$$1 === GET_THEN_ERROR) {
      reject(promise, GET_THEN_ERROR.error);
      GET_THEN_ERROR.error = null;
    } else if (then$$1 === undefined) {
      fulfill(promise, maybeThenable);
    } else if (isFunction(then$$1)) {
      handleForeignThenable(promise, maybeThenable, then$$1);
    } else {
      fulfill(promise, maybeThenable);
    }
  }
}

function resolve(promise, value) {
  if (promise === value) {
    reject(promise, selfFulfillment());
  } else if (objectOrFunction(value)) {
    handleMaybeThenable(promise, value, getThen(value));
  } else {
    fulfill(promise, value);
  }
}

function publishRejection(promise) {
  if (promise._onerror) {
    promise._onerror(promise._result);
  }

  publish(promise);
}

function fulfill(promise, value) {
  if (promise._state !== PENDING) {
    return;
  }

  promise._result = value;
  promise._state = FULFILLED;

  if (promise._subscribers.length !== 0) {
    asap(publish, promise);
  }
}

function reject(promise, reason) {
  if (promise._state !== PENDING) {
    return;
  }
  promise._state = REJECTED;
  promise._result = reason;

  asap(publishRejection, promise);
}

function subscribe(parent, child, onFulfillment, onRejection) {
  var _subscribers = parent._subscribers;
  var length = _subscribers.length;

  parent._onerror = null;

  _subscribers[length] = child;
  _subscribers[length + FULFILLED] = onFulfillment;
  _subscribers[length + REJECTED] = onRejection;

  if (length === 0 && parent._state) {
    asap(publish, parent);
  }
}

function publish(promise) {
  var subscribers = promise._subscribers;
  var settled = promise._state;

  if (subscribers.length === 0) {
    return;
  }

  var child = undefined,
      callback = undefined,
      detail = promise._result;

  for (var i = 0; i < subscribers.length; i += 3) {
    child = subscribers[i];
    callback = subscribers[i + settled];

    if (child) {
      invokeCallback(settled, child, callback, detail);
    } else {
      callback(detail);
    }
  }

  promise._subscribers.length = 0;
}

function ErrorObject() {
  this.error = null;
}

var TRY_CATCH_ERROR = new ErrorObject();

function tryCatch(callback, detail) {
  try {
    return callback(detail);
  } catch (e) {
    TRY_CATCH_ERROR.error = e;
    return TRY_CATCH_ERROR;
  }
}

function invokeCallback(settled, promise, callback, detail) {
  var hasCallback = isFunction(callback),
      value = undefined,
      error = undefined,
      succeeded = undefined,
      failed = undefined;

  if (hasCallback) {
    value = tryCatch(callback, detail);

    if (value === TRY_CATCH_ERROR) {
      failed = true;
      error = value.error;
      value.error = null;
    } else {
      succeeded = true;
    }

    if (promise === value) {
      reject(promise, cannotReturnOwn());
      return;
    }
  } else {
    value = detail;
    succeeded = true;
  }

  if (promise._state !== PENDING) {
    // noop
  } else if (hasCallback && succeeded) {
      resolve(promise, value);
    } else if (failed) {
      reject(promise, error);
    } else if (settled === FULFILLED) {
      fulfill(promise, value);
    } else if (settled === REJECTED) {
      reject(promise, value);
    }
}

function initializePromise(promise, resolver) {
  try {
    resolver(function resolvePromise(value) {
      resolve(promise, value);
    }, function rejectPromise(reason) {
      reject(promise, reason);
    });
  } catch (e) {
    reject(promise, e);
  }
}

var id = 0;
function nextId() {
  return id++;
}

function makePromise(promise) {
  promise[PROMISE_ID] = id++;
  promise._state = undefined;
  promise._result = undefined;
  promise._subscribers = [];
}

function Enumerator$1(Constructor, input) {
  this._instanceConstructor = Constructor;
  this.promise = new Constructor(noop);

  if (!this.promise[PROMISE_ID]) {
    makePromise(this.promise);
  }

  if (isArray(input)) {
    this.length = input.length;
    this._remaining = input.length;

    this._result = new Array(this.length);

    if (this.length === 0) {
      fulfill(this.promise, this._result);
    } else {
      this.length = this.length || 0;
      this._enumerate(input);
      if (this._remaining === 0) {
        fulfill(this.promise, this._result);
      }
    }
  } else {
    reject(this.promise, validationError());
  }
}

function validationError() {
  return new Error('Array Methods must be provided an Array');
}

Enumerator$1.prototype._enumerate = function (input) {
  for (var i = 0; this._state === PENDING && i < input.length; i++) {
    this._eachEntry(input[i], i);
  }
};

Enumerator$1.prototype._eachEntry = function (entry, i) {
  var c = this._instanceConstructor;
  var resolve$$1 = c.resolve;

  if (resolve$$1 === resolve$1) {
    var _then = getThen(entry);

    if (_then === then && entry._state !== PENDING) {
      this._settledAt(entry._state, i, entry._result);
    } else if (typeof _then !== 'function') {
      this._remaining--;
      this._result[i] = entry;
    } else if (c === Promise$2) {
      var promise = new c(noop);
      handleMaybeThenable(promise, entry, _then);
      this._willSettleAt(promise, i);
    } else {
      this._willSettleAt(new c(function (resolve$$1) {
        return resolve$$1(entry);
      }), i);
    }
  } else {
    this._willSettleAt(resolve$$1(entry), i);
  }
};

Enumerator$1.prototype._settledAt = function (state, i, value) {
  var promise = this.promise;

  if (promise._state === PENDING) {
    this._remaining--;

    if (state === REJECTED) {
      reject(promise, value);
    } else {
      this._result[i] = value;
    }
  }

  if (this._remaining === 0) {
    fulfill(promise, this._result);
  }
};

Enumerator$1.prototype._willSettleAt = function (promise, i) {
  var enumerator = this;

  subscribe(promise, undefined, function (value) {
    return enumerator._settledAt(FULFILLED, i, value);
  }, function (reason) {
    return enumerator._settledAt(REJECTED, i, reason);
  });
};

/**
  `Promise.all` accepts an array of promises, and returns a new promise which
  is fulfilled with an array of fulfillment values for the passed promises, or
  rejected with the reason of the first passed promise to be rejected. It casts all
  elements of the passed iterable to promises as it runs this algorithm.

  Example:

  ```javascript
  let promise1 = resolve(1);
  let promise2 = resolve(2);
  let promise3 = resolve(3);
  let promises = [ promise1, promise2, promise3 ];

  Promise.all(promises).then(function(array){
    // The array here would be [ 1, 2, 3 ];
  });
  ```

  If any of the `promises` given to `all` are rejected, the first promise
  that is rejected will be given as an argument to the returned promises's
  rejection handler. For example:

  Example:

  ```javascript
  let promise1 = resolve(1);
  let promise2 = reject(new Error("2"));
  let promise3 = reject(new Error("3"));
  let promises = [ promise1, promise2, promise3 ];

  Promise.all(promises).then(function(array){
    // Code here never runs because there are rejected promises!
  }, function(error) {
    // error.message === "2"
  });
  ```

  @method all
  @static
  @param {Array} entries array of promises
  @param {String} label optional string for labeling the promise.
  Useful for tooling.
  @return {Promise} promise that is fulfilled when all `promises` have been
  fulfilled, or rejected if any of them become rejected.
  @static
*/
function all$1(entries) {
  return new Enumerator$1(this, entries).promise;
}

/**
  `Promise.race` returns a new promise which is settled in the same way as the
  first passed promise to settle.

  Example:

  ```javascript
  let promise1 = new Promise(function(resolve, reject){
    setTimeout(function(){
      resolve('promise 1');
    }, 200);
  });

  let promise2 = new Promise(function(resolve, reject){
    setTimeout(function(){
      resolve('promise 2');
    }, 100);
  });

  Promise.race([promise1, promise2]).then(function(result){
    // result === 'promise 2' because it was resolved before promise1
    // was resolved.
  });
  ```

  `Promise.race` is deterministic in that only the state of the first
  settled promise matters. For example, even if other promises given to the
  `promises` array argument are resolved, but the first settled promise has
  become rejected before the other promises became fulfilled, the returned
  promise will become rejected:

  ```javascript
  let promise1 = new Promise(function(resolve, reject){
    setTimeout(function(){
      resolve('promise 1');
    }, 200);
  });

  let promise2 = new Promise(function(resolve, reject){
    setTimeout(function(){
      reject(new Error('promise 2'));
    }, 100);
  });

  Promise.race([promise1, promise2]).then(function(result){
    // Code here never runs
  }, function(reason){
    // reason.message === 'promise 2' because promise 2 became rejected before
    // promise 1 became fulfilled
  });
  ```

  An example real-world use case is implementing timeouts:

  ```javascript
  Promise.race([ajax('foo.json'), timeout(5000)])
  ```

  @method race
  @static
  @param {Array} promises array of promises to observe
  Useful for tooling.
  @return {Promise} a promise which settles in the same way as the first passed
  promise to settle.
*/
function race$1(entries) {
  /*jshint validthis:true */
  var Constructor = this;

  if (!isArray(entries)) {
    return new Constructor(function (_, reject) {
      return reject(new TypeError('You must pass an array to race.'));
    });
  } else {
    return new Constructor(function (resolve, reject) {
      var length = entries.length;
      for (var i = 0; i < length; i++) {
        Constructor.resolve(entries[i]).then(resolve, reject);
      }
    });
  }
}

/**
  `Promise.reject` returns a promise rejected with the passed `reason`.
  It is shorthand for the following:

  ```javascript
  let promise = new Promise(function(resolve, reject){
    reject(new Error('WHOOPS'));
  });

  promise.then(function(value){
    // Code here doesn't run because the promise is rejected!
  }, function(reason){
    // reason.message === 'WHOOPS'
  });
  ```

  Instead of writing the above, your code now simply becomes the following:

  ```javascript
  let promise = Promise.reject(new Error('WHOOPS'));

  promise.then(function(value){
    // Code here doesn't run because the promise is rejected!
  }, function(reason){
    // reason.message === 'WHOOPS'
  });
  ```

  @method reject
  @static
  @param {Any} reason value that the returned promise will be rejected with.
  Useful for tooling.
  @return {Promise} a promise rejected with the given `reason`.
*/
function reject$1(reason) {
  /*jshint validthis:true */
  var Constructor = this;
  var promise = new Constructor(noop);
  reject(promise, reason);
  return promise;
}

function needsResolver() {
  throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
}

function needsNew() {
  throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
}

/**
  Promise objects represent the eventual result of an asynchronous operation. The
  primary way of interacting with a promise is through its `then` method, which
  registers callbacks to receive either a promise's eventual value or the reason
  why the promise cannot be fulfilled.

  Terminology
  -----------

  - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
  - `thenable` is an object or function that defines a `then` method.
  - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
  - `exception` is a value that is thrown using the throw statement.
  - `reason` is a value that indicates why a promise was rejected.
  - `settled` the final resting state of a promise, fulfilled or rejected.

  A promise can be in one of three states: pending, fulfilled, or rejected.

  Promises that are fulfilled have a fulfillment value and are in the fulfilled
  state.  Promises that are rejected have a rejection reason and are in the
  rejected state.  A fulfillment value is never a thenable.

  Promises can also be said to *resolve* a value.  If this value is also a
  promise, then the original promise's settled state will match the value's
  settled state.  So a promise that *resolves* a promise that rejects will
  itself reject, and a promise that *resolves* a promise that fulfills will
  itself fulfill.


  Basic Usage:
  ------------

  ```js
  let promise = new Promise(function(resolve, reject) {
    // on success
    resolve(value);

    // on failure
    reject(reason);
  });

  promise.then(function(value) {
    // on fulfillment
  }, function(reason) {
    // on rejection
  });
  ```

  Advanced Usage:
  ---------------

  Promises shine when abstracting away asynchronous interactions such as
  `XMLHttpRequest`s.

  ```js
  function getJSON(url) {
    return new Promise(function(resolve, reject){
      let xhr = new XMLHttpRequest();

      xhr.open('GET', url);
      xhr.onreadystatechange = handler;
      xhr.responseType = 'json';
      xhr.setRequestHeader('Accept', 'application/json');
      xhr.send();

      function handler() {
        if (this.readyState === this.DONE) {
          if (this.status === 200) {
            resolve(this.response);
          } else {
            reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
          }
        }
      };
    });
  }

  getJSON('/posts.json').then(function(json) {
    // on fulfillment
  }, function(reason) {
    // on rejection
  });
  ```

  Unlike callbacks, promises are great composable primitives.

  ```js
  Promise.all([
    getJSON('/posts'),
    getJSON('/comments')
  ]).then(function(values){
    values[0] // => postsJSON
    values[1] // => commentsJSON

    return values;
  });
  ```

  @class Promise
  @param {function} resolver
  Useful for tooling.
  @constructor
*/
function Promise$2(resolver) {
  this[PROMISE_ID] = nextId();
  this._result = this._state = undefined;
  this._subscribers = [];

  if (noop !== resolver) {
    typeof resolver !== 'function' && needsResolver();
    this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
  }
}

Promise$2.all = all$1;
Promise$2.race = race$1;
Promise$2.resolve = resolve$1;
Promise$2.reject = reject$1;
Promise$2._setScheduler = setScheduler;
Promise$2._setAsap = setAsap;
Promise$2._asap = asap;

Promise$2.prototype = {
  constructor: Promise$2,

  /**
    The primary way of interacting with a promise is through its `then` method,
    which registers callbacks to receive either a promise's eventual value or the
    reason why the promise cannot be fulfilled.
  
    ```js
    findUser().then(function(user){
      // user is available
    }, function(reason){
      // user is unavailable, and you are given the reason why
    });
    ```
  
    Chaining
    --------
  
    The return value of `then` is itself a promise.  This second, 'downstream'
    promise is resolved with the return value of the first promise's fulfillment
    or rejection handler, or rejected if the handler throws an exception.
  
    ```js
    findUser().then(function (user) {
      return user.name;
    }, function (reason) {
      return 'default name';
    }).then(function (userName) {
      // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
      // will be `'default name'`
    });
  
    findUser().then(function (user) {
      throw new Error('Found user, but still unhappy');
    }, function (reason) {
      throw new Error('`findUser` rejected and we're unhappy');
    }).then(function (value) {
      // never reached
    }, function (reason) {
      // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
      // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
    });
    ```
    If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
  
    ```js
    findUser().then(function (user) {
      throw new PedagogicalException('Upstream error');
    }).then(function (value) {
      // never reached
    }).then(function (value) {
      // never reached
    }, function (reason) {
      // The `PedgagocialException` is propagated all the way down to here
    });
    ```
  
    Assimilation
    ------------
  
    Sometimes the value you want to propagate to a downstream promise can only be
    retrieved asynchronously. This can be achieved by returning a promise in the
    fulfillment or rejection handler. The downstream promise will then be pending
    until the returned promise is settled. This is called *assimilation*.
  
    ```js
    findUser().then(function (user) {
      return findCommentsByAuthor(user);
    }).then(function (comments) {
      // The user's comments are now available
    });
    ```
  
    If the assimliated promise rejects, then the downstream promise will also reject.
  
    ```js
    findUser().then(function (user) {
      return findCommentsByAuthor(user);
    }).then(function (comments) {
      // If `findCommentsByAuthor` fulfills, we'll have the value here
    }, function (reason) {
      // If `findCommentsByAuthor` rejects, we'll have the reason here
    });
    ```
  
    Simple Example
    --------------
  
    Synchronous Example
  
    ```javascript
    let result;
  
    try {
      result = findResult();
      // success
    } catch(reason) {
      // failure
    }
    ```
  
    Errback Example
  
    ```js
    findResult(function(result, err){
      if (err) {
        // failure
      } else {
        // success
      }
    });
    ```
  
    Promise Example;
  
    ```javascript
    findResult().then(function(result){
      // success
    }, function(reason){
      // failure
    });
    ```
  
    Advanced Example
    --------------
  
    Synchronous Example
  
    ```javascript
    let author, books;
  
    try {
      author = findAuthor();
      books  = findBooksByAuthor(author);
      // success
    } catch(reason) {
      // failure
    }
    ```
  
    Errback Example
  
    ```js
  
    function foundBooks(books) {
  
    }
  
    function failure(reason) {
  
    }
  
    findAuthor(function(author, err){
      if (err) {
        failure(err);
        // failure
      } else {
        try {
          findBoooksByAuthor(author, function(books, err) {
            if (err) {
              failure(err);
            } else {
              try {
                foundBooks(books);
              } catch(reason) {
                failure(reason);
              }
            }
          });
        } catch(error) {
          failure(err);
        }
        // success
      }
    });
    ```
  
    Promise Example;
  
    ```javascript
    findAuthor().
      then(findBooksByAuthor).
      then(function(books){
        // found books
    }).catch(function(reason){
      // something went wrong
    });
    ```
  
    @method then
    @param {Function} onFulfilled
    @param {Function} onRejected
    Useful for tooling.
    @return {Promise}
  */
  then: then,

  /**
    `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
    as the catch block of a try/catch statement.
  
    ```js
    function findAuthor(){
      throw new Error('couldn't find that author');
    }
  
    // synchronous
    try {
      findAuthor();
    } catch(reason) {
      // something went wrong
    }
  
    // async with promises
    findAuthor().catch(function(reason){
      // something went wrong
    });
    ```
  
    @method catch
    @param {Function} onRejection
    Useful for tooling.
    @return {Promise}
  */
  'catch': function _catch(onRejection) {
    return this.then(null, onRejection);
  }
};

/*global self*/
function polyfill$1() {
    var local = undefined;

    if (typeof global !== 'undefined') {
        local = global;
    } else if (typeof self !== 'undefined') {
        local = self;
    } else {
        try {
            local = Function('return this')();
        } catch (e) {
            throw new Error('polyfill failed because global object is unavailable in this environment');
        }
    }

    var P = local.Promise;

    if (P) {
        var promiseToString = null;
        try {
            promiseToString = Object.prototype.toString.call(P.resolve());
        } catch (e) {
            // silently ignored
        }

        if (promiseToString === '[object Promise]' && !P.cast) {
            return;
        }
    }

    local.Promise = Promise$2;
}

// Strange compat..
Promise$2.polyfill = polyfill$1;
Promise$2.Promise = Promise$2;

return Promise$2;

})));

//# sourceMappingURL=es6-promise.map

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../process/0.11.10/node_modules/process/browser.js */ "Za/J"), __webpack_require__(/*! ./../../../../../webpack/4.35.3/node_modules/webpack/buildin/global.js */ "fE1I")))

/***/ })

/******/ })});;
//# sourceMappingURL=sp-polyfills.js.map


define("4df9bb86-ab0a-4aab-ab5f-48bf167048fb_1.10.0", ["@microsoft/decorators","@microsoft/load-themed-styles","@microsoft/sp-component-base","@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-extension-base","@microsoft/sp-http","@microsoft/sp-loader","@microsoft/sp-lodash-subset","@microsoft/sp-page-context","@ms/odsp-utilities-bundle","@ms/sp-load-themed-styles","@ms/sp-suite-nav","@ms/sp-telemetry","@ms/uifabric-styling-bundle","react","react-dom"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_decorators__, __WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_component_base__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_extension_base__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_loader__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__, __WEBPACK_EXTERNAL_MODULE__ms_odsp_utilities_bundle__, __WEBPACK_EXTERNAL_MODULE__ms_sp_load_themed_styles__, __WEBPACK_EXTERNAL_MODULE__ms_sp_suite_nav__, __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__, __WEBPACK_EXTERNAL_MODULE__ms_uifabric_styling_bundle__, __WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__) { return /******/ (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 = "./sp-application-base.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_tZTEjqMO7pBJoQSOs5iS2g": {
      "applicationFailedToLoadWithMessageError": "***Application failed to load. Id: \"{0}\".\r\nError: {1}",
      "applicationFailedToInitializeError": "***Error initializing application. Error: {0}",
      "clickToResolveIssueLinkText": "Click to provide additional credentials."
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-application-base.js":
/*!********************************!*\
  !*** ./sp-application-base.js ***!
  \********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @ms/sp-telemetry */ "@ms/sp-telemetry"),__webpack_require__(/*! @ms/sp-load-themed-styles */ "@ms/sp-load-themed-styles"),__webpack_require__(/*! @ms/sp-suite-nav */ "@ms/sp-suite-nav"),__webpack_require__(/*! @microsoft/sp-component-base */ "@microsoft/sp-component-base"),__webpack_require__(/*! @microsoft/sp-loader */ "@microsoft/sp-loader"),__webpack_require__(/*! @microsoft/sp-lodash-subset */ "@microsoft/sp-lodash-subset"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-page-context */ "@microsoft/sp-page-context"),__webpack_require__(/*! @microsoft/sp-extension-base */ "@microsoft/sp-extension-base"),__webpack_require__(/*! react */ "react"),__webpack_require__(/*! react-dom */ "react-dom"),__webpack_require__(/*! @ms/uifabric-styling-bundle */ "@ms/uifabric-styling-bundle"),__webpack_require__(/*! @microsoft/load-themed-styles */ "@microsoft/load-themed-styles"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! @microsoft/sp-http */ "@microsoft/sp-http"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js"),__webpack_require__(/*! @microsoft/decorators */ "@microsoft/decorators"),__webpack_require__(/*! @ms/odsp-utilities-bundle */ "@ms/odsp-utilities-bundle")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE__2q6Q__, __WEBPACK_EXTERNAL_MODULE__5z2F__, __WEBPACK_EXTERNAL_MODULE__6iXJ__, __WEBPACK_EXTERNAL_MODULE__7Awa__, __WEBPACK_EXTERNAL_MODULE_I6O9__, __WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_X_PM__, __WEBPACK_EXTERNAL_MODULE_ZFc5__, __WEBPACK_EXTERNAL_MODULE_cDcd__, __WEBPACK_EXTERNAL_MODULE_faye__, __WEBPACK_EXTERNAL_MODULE_fglE__, __WEBPACK_EXTERNAL_MODULE_jOlS__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vlQI__, __WEBPACK_EXTERNAL_MODULE_vpy3__, __WEBPACK_EXTERNAL_MODULE_wxtz__, __WEBPACK_EXTERNAL_MODULE_y88i__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-application-base": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"sp-navigation-datastore":"sp-navigation-datastore"}[chunkId]||chunkId) + "_" + {"0":"24d707a0b3752302e569","sp-navigation-datastore":"02cc05b232802bc8f623"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonp_4df9bb86_ab0a_4aab_ab5f_48bf167048fb_1_10_0"] = window["webpackJsonp_4df9bb86_ab0a_4aab_ab5f_48bf167048fb_1_10_0"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-application-base(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "+1sd":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/CommandBar.styles.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: CommandBarStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBarStyles", function() { return CommandBarStyles; });
var CommandBarStyles = function (props) {
    var theme = props.theme;
    return {
        root: [
            {
                height: 40,
                padding: '0 16px',
                backgroundColor: theme.palette.neutralLighter
            }
        ]
    };
};
//# sourceMappingURL=CommandBar.styles.js.map

/***/ }),

/***/ "+AHM":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/events/ResultTypeEnum.js ***!
  \*************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/logging/events/ResultTypeEnum.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.ResultTypeEnum = pkg.ResultTypeEnum;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "/HB6":
/*!*************************************************************!*\
  !*** ./lib/extensibility/placeholder/PlaceholderManager.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Placeholder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Placeholder */ "jZLx");
/* harmony import */ var _PlaceholderName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PlaceholderName */ "Cs6k");




/**
 * PlaceholderManager is a service registered with the application's root ServiceScope.
 * The host application uses this object to define the placeholders which will
 * be consumed by third-party extensions.  The PlaceholderCollection then obtains its
 * data from the PlaceholderManager.
 *
 * @internal
 */
var PlaceholderManager = /** @class */ (function () {
    function PlaceholderManager(serviceScope) {
        this._isEnabled = false;
        this._changedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](PlaceholderManager.placeholdersChangedEventName);
        this._placeholders = new Map();
        // Create the placeholders for all the names
        this._placeholders.set(_PlaceholderName__WEBPACK_IMPORTED_MODULE_2__["default"].Top, this._createPlaceholder(_PlaceholderName__WEBPACK_IMPORTED_MODULE_2__["default"].Top));
        this._placeholders.set(_PlaceholderName__WEBPACK_IMPORTED_MODULE_2__["default"].Bottom, this._createPlaceholder(_PlaceholderName__WEBPACK_IMPORTED_MODULE_2__["default"].Bottom));
    }
    Object.defineProperty(PlaceholderManager.prototype, "changedEvent", {
        /**
         * The event raised when the application changes placeholder definitions
         * @eventproperty
         */
        get: function () {
            return this._changedEvent;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Initializes the collection of placeholders for use by application customizers.
     */
    PlaceholderManager.prototype.initializePlaceholders = function (definitions) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(definitions, 'definitions');
        definitions.forEach(function (def) { return _this.addPlaceholder(def.name, def.domElement); });
    };
    /**
     * Adds a placeholder.
     * If a placeholder already existed for the same name, it replaces it.
     */
    PlaceholderManager.prototype.addPlaceholder = function (name, domElement) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isTrue(this.placeholders.has(name), 'placeholder exists');
        this._placeholders.get(name).attachToApplication(domElement);
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseStickyEvent(PlaceholderManager.placeholdersChangedEventName, new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEventArgs"]());
    };
    /**
     * Removes a placeholder.
     */
    PlaceholderManager.prototype.removePlaceholder = function (name) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isTrue(this.placeholders.has(name), 'placeholder exists');
        this._placeholders.get(name).detachFromApplication();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseStickyEvent(PlaceholderManager.placeholdersChangedEventName, new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEventArgs"]());
    };
    Object.defineProperty(PlaceholderManager.prototype, "isEnabled", {
        /**
         * Returns true if the placeholders are enabled for the current application
         */
        get: function () {
            return this._isEnabled;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Allows the application to set if placeholders are enabled for the current application
     * @internal
     */
    PlaceholderManager.prototype._enable = function () {
        this._isEnabled = true;
    };
    Object.defineProperty(PlaceholderManager.prototype, "placeholders", {
        /**
         * Returns a map from PlaceholderName to Placeholder for all active placeholders.
         */
        get: function () {
            return this._placeholders;
        },
        enumerable: true,
        configurable: true
    });
    PlaceholderManager.prototype._createPlaceholder = function (name) {
        return new _Placeholder__WEBPACK_IMPORTED_MODULE_1__["default"]({ name: name, domElement: document.createElement('div') }, this);
    };
    /**
     * The service key for PlaceholderManager.
     */
    PlaceholderManager.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-application-base:PlaceholderManager', PlaceholderManager);
    /**
     * SPEvent name for placeholders change
     */
    PlaceholderManager.placeholdersChangedEventName = 'placeholders.changedEvent';
    return PlaceholderManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (PlaceholderManager);


/***/ }),

/***/ "/Kpt":
/*!**************************************************************!*\
  !*** ./lib/extensibility/placeholder/PlaceholderProvider.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/Killswitches */ "dQCu");
/* harmony import */ var _PlaceholderManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PlaceholderManager */ "/HB6");
/* harmony import */ var _PlaceholderName__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PlaceholderName */ "Cs6k");





/**
 * Allows third-party components to discover and use SharePoint placeholders.  Placeholders
 * enable third-party components to render custom content into designated regions on the page.
 *
 * @remarks
 * Placeholders are designated regions on the page, identified by one of the predefined
 * {@link PlaceholderName} constants.  Different applications and pages might support different
 * placeholder names.  Placeholders can appear and disappear as the user interacts with the page,
 * for example via in-place navigation.  Third-party components should not assume that a given placeholder
 * will always be available.
 *
 * Use {@link PlaceholderProvider.tryCreateContent} to test whether a placeholder is
 * available and add content to it.   Use the {@link PlaceholderProvider.changedEvent} event
 * to discover when new placeholders appear.
 *
 * @public
 */
var PlaceholderProvider = /** @class */ (function () {
    /**
     * @internal
     */
    function PlaceholderProvider(serviceScope, applicationCustomizerContextParameters, componentTag) {
        var _this = this;
        this._placeholderContents = [];
        this._isDisposed = false;
        this._sequence = applicationCustomizerContextParameters.sequence;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('PlaceholderProvider');
        var preAllocatedApplicationCustomizerTopHeight = applicationCustomizerContextParameters.preAllocatedApplicationCustomizerTopHeight, preAllocatedApplicationCustomizerBottomHeight = applicationCustomizerContextParameters.preAllocatedApplicationCustomizerBottomHeight;
        this._componentTag = componentTag ? componentTag : '';
        if (!_common_Killswitches__WEBPACK_IMPORTED_MODULE_2__["Killswitches"].isPreallocatedPlaceholdersforApplicationCustomizersKSActive()) {
            /*
             * We're not using the whenFinished callback, as we know that at this point, the servicescope
             * in use is already finished in the ApplicationCustomizerContext.
             */
            this._placeholderManager = serviceScope.consume(_PlaceholderManager__WEBPACK_IMPORTED_MODULE_3__["default"].serviceKey);
            if (preAllocatedApplicationCustomizerTopHeight > 0) {
                this._preAllocatedTopPlaceholderContent =
                    this._preAllocateContent(_PlaceholderName__WEBPACK_IMPORTED_MODULE_4__["default"].Top, preAllocatedApplicationCustomizerTopHeight, qosMonitor);
            }
            if (preAllocatedApplicationCustomizerBottomHeight > 0) {
                this._preAllocatedBottomPlaceholderContent = this._preAllocateContent(_PlaceholderName__WEBPACK_IMPORTED_MODULE_4__["default"].Bottom, preAllocatedApplicationCustomizerBottomHeight, qosMonitor);
            }
            qosMonitor.writeSuccess({ name: name });
        }
        else {
            this._sequence = applicationCustomizerContextParameters.sequence;
            serviceScope.whenFinished(function () {
                _this._placeholderManager = serviceScope.consume(_PlaceholderManager__WEBPACK_IMPORTED_MODULE_3__["default"].serviceKey);
            });
        }
    }
    PlaceholderProvider.prototype.dispose = function () {
        if (!this._isDisposed) {
            this._placeholderContents.forEach(function (content) { return content.dispose(); });
            delete this._placeholderContents;
            delete this._placeholderManager;
        }
        this._isDisposed = true;
    };
    Object.defineProperty(PlaceholderProvider.prototype, "isDisposed", {
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Tests whether the page contains the specified placeholder.  If so, a new PlaceholderContent
     * object is created, which allows the caller to render custom content inside the placeholder.
     *
     * @param name - The requested placeholder
     * @param options - Additional options, for example to detect when the placeholder is disposed.
     * @returns A new PlaceholderContent object, or undefined if the requested placeholder does not exist.
     *
     * @remarks
     *
     * The host application makes no guarantees about the availability of a given placeholder.
     * In situations where an expected placeholder is not available, the third-party extension
     * must handle it gracefully, e.g. by not rendering anything, or by choosing an alternative
     * placeholder.
     */
    PlaceholderProvider.prototype.tryCreateContent = function (name, options) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(PlaceholderProvider._logSource, "Creating placeholder content in placeholder \"" + name + "\"");
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('Placeholder.tryCreateContent');
        if (!_common_Killswitches__WEBPACK_IMPORTED_MODULE_2__["Killswitches"].isPreallocatedPlaceholdersforApplicationCustomizersKSActive()) {
            var content = void 0;
            if (name === _PlaceholderName__WEBPACK_IMPORTED_MODULE_4__["default"].Top && this._preAllocatedTopPlaceholderContent) {
                content = this._preAllocatedTopPlaceholderContent;
                this._preAllocatedTopPlaceholderContent = undefined;
            }
            else if (name === _PlaceholderName__WEBPACK_IMPORTED_MODULE_4__["default"].Bottom && this._preAllocatedBottomPlaceholderContent) {
                content = this._preAllocatedBottomPlaceholderContent;
                this._preAllocatedBottomPlaceholderContent = undefined;
            }
            if (content) {
                content._setOptions(options);
                this._postContentCreation(content, qosMonitor);
                content.domElement.innerHTML = '';
                return content;
            }
            return this._tryCreateContent(qosMonitor, name, options);
        }
        else {
            var placeholder = this._placeholderManager.placeholders.get(name);
            var content = void 0;
            try {
                content = placeholder.createPlaceholderContent(this._sequence, options);
            }
            catch (error) {
                qosMonitor.writeUnexpectedFailure('CreateContentFailed', error, { name: name });
                return undefined;
            }
            if (content) {
                this._placeholderContents.push(content);
                qosMonitor.writeSuccess({ name: name });
            }
            else {
                var error = new Error('Placeholder could not create new content');
                qosMonitor.writeUnexpectedFailure('CreateContentUndefined', error, { name: name });
            }
            return content;
        }
    };
    PlaceholderProvider.prototype._preAllocateContent = function (placeholderName, height, qosMonitor) {
        // There is a chance that someone is looking for placeholders before the PlaceholderProvider.changedEvent has fired.
        // This is a bug, and we should warn the user of this anti-pattern. The easiest thing to do is make sure that
        // the .changedEvent callback isn't empty.
        if (this._placeholderManager.changedEvent._listenerCount() === 0) {
            // This is a bad state to be in.  We should log this out:
            console.log('tryCreateContent was called, but PlaceholderProvider.changedEvent has no handlers. ' +
                'This is likely to cause an error in the future.  You should probably be calling ' +
                'tryCreateContent in the PlaceholderProvider.changedEvent callback.');
        }
        // Check if placeholders are enabled first.
        if (!this._placeholderManager.isEnabled || !this._placeholderManager.placeholders.has(placeholderName)) {
            var error = new Error("No placeholder found with the name '" + name + "'");
            qosMonitor.writeExpectedFailure('PlaceholderNotFound', error, { name: name });
            return undefined;
        }
        var placeholder = this._placeholderManager.placeholders.get(placeholderName);
        var preAllocatedContent = placeholder.createPlaceholderContent(this._sequence);
        // This should never really happen. But this gives an explicit failure to help debug issues quickly.
        if (!placeholder) {
            var error = new Error('Placeholder dictionary has only the key but not the value for the placeholder');
            qosMonitor.writeUnexpectedFailure('NoValueInPlaceholdersMap', error, { name: name });
            return undefined;
        }
        try {
            preAllocatedContent.domElement.style.height = height + 'px';
            var shimmer = _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__["_ShimmerFactory"].createShimmer(preAllocatedContent.domElement.clientWidth, height, _PlaceholderName__WEBPACK_IMPORTED_MODULE_4__["default"] + this._componentTag, '', 0);
            preAllocatedContent.domElement.appendChild(shimmer);
            qosMonitor.writeSuccess({ name: name });
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('CreateContentFailed', error, { name: name });
        }
        return preAllocatedContent;
    };
    Object.defineProperty(PlaceholderProvider.prototype, "placeholderNames", {
        /**
         * Returns the names of the currently available placeholders.
         */
        get: function () {
            if (!this._placeholderManager.isEnabled) {
                return [];
            }
            var array = [];
            this._placeholderManager.placeholders.forEach(function (value, key) { return array.push(key); });
            return array;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PlaceholderProvider.prototype, "changedEvent", {
        /**
         * This event is raised when the list of currently available placeholders is changed.
         *
         * @remarks
         * The application can change its list of available placeholders at any time. This means that the existing
         * placeholders may get disposed or new placeholders may be added. Use this event to discover new
         * placeholders when they appear.
         *
         * @eventproperty
         */
        get: function () {
            return this._placeholderManager.changedEvent;
        },
        enumerable: true,
        configurable: true
    });
    PlaceholderProvider.prototype._tryCreateContent = function (qosMonitor, name, options) {
        var placeholder = this._placeholderManager.placeholders.get(name);
        var content;
        try {
            content = placeholder.createPlaceholderContent(this._sequence, options);
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('CreateContentFailed', error, { name: name });
            return undefined;
        }
        this._postContentCreation(content, qosMonitor);
        return content;
    };
    PlaceholderProvider.prototype._postContentCreation = function (content, qosMonitor) {
        if (content) {
            this._placeholderContents.push(content);
            qosMonitor.writeSuccess({ name: name });
        }
        else {
            var error = new Error('Placeholder could not create new content');
            qosMonitor.writeUnexpectedFailure('CreateContentUndefined', error, { name: name });
        }
    };
    PlaceholderProvider._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('PlaceholderProvider');
    return PlaceholderProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (PlaceholderProvider);


/***/ }),

/***/ "/TBc":
/*!********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/events/Qos.event.js ***!
  \********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/logging/events/Qos.event.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.Qos = pkg.Qos;
module.exports.ResultTypeEnum = pkg.ResultTypeEnum;
module.exports.default = pkg.Qos;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "/jhG":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/ApplyDeferredCustomizations.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: applyDeferredFabricCustomizations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyDeferredFabricCustomizations", function() { return applyDeferredFabricCustomizations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/FeatureOverrides */ "6TYi");
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _FluentFeatures__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FluentFeatures */ "1/3F");
/* harmony import */ var _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uifabric/utilities/lib/customizations/Customizations */ "TgkG");
/* harmony import */ var _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities/lib/performance/PerformanceMarker */ "Oy+S");
/* harmony import */ var _ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4__);





var appliedDeferredFabricCustomizations = false;
/** Applies Fabric MDL2 style Customization overrides for deferred components. */
function applyDeferredFabricCustomizations() {
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function () {
        var modules, mdl2Styles_1;
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"](this, function (_a) {
            switch (_a.label) {
                case 0:
                    if (appliedDeferredFabricCustomizations) {
                        return [2 /*return*/];
                    }
                    ;
                    if (!(!_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_2__["EnableFluentTheme"]) &&
                        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_2__["OnedriveFluentCustomization"]) &&
                        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_1___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_2__["EnableFluentStylingODC"]))) return [3 /*break*/, 2];
                    Object(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4__["mark"])('FabricCustomizations_Deferred_AwaitLoad');
                    return [4 /*yield*/, __webpack_require__.e(/*! import() */ 0).then(__webpack_require__.bind(null, /*! ./FabricDeferredCustomizations */ "sA9l"))];
                case 1:
                    modules = _a.sent();
                    Object(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4__["mark"])('FabricCustomizations_Deferred_Start');
                    mdl2Styles_1 = {
                        ColorPicker: { styles: modules.ColorPickerStyles },
                        ColorRectangle: { styles: modules.ColorRectangleStyles },
                        ColorSlider: { styles: modules.ColorSliderStyles },
                        CompoundButton: { styles: modules.CompoundButtonStyles },
                        Checkbox: { styles: modules.CheckboxStyles },
                        ChoiceGroupOption: { styles: modules.ChoiceGroupOptionStyles },
                        ComboBox: { styles: modules.ComboBoxStyles },
                        Dropdown: { styles: modules.DropdownStyles },
                        ExpandingCard: { styles: modules.ExpandingCardStyles },
                        IconButton: { styles: modules.IconButtonStyles },
                        Panel: { styles: modules.PanelStyles },
                        Persona: { styles: modules.PersonaStyles },
                        PersonaCoin: { styles: modules.PersonaCoinStyles },
                        PlainCard: { styles: modules.PlainCardStyles },
                        Slider: { styles: modules.SliderStyles },
                        SpinButton: { styles: modules.SpinButtonStyles },
                        Toggle: { styles: modules.ToggleStyles }
                    };
                    appliedDeferredFabricCustomizations = true;
                    _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__["Customizations"].applyBatchedUpdates(function () {
                        for (var c in mdl2Styles_1) {
                            _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__["Customizations"].applyScopedSettings(c, mdl2Styles_1[c]);
                        }
                    }, true); // don't force a re-render
                    Object(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_4__["mark"])('FabricCustomizations_Deferred_End');
                    _a.label = 2;
                case 2: return [2 /*return*/];
            }
        });
    });
}
//# sourceMappingURL=ApplyDeferredCustomizations.js.map

/***/ }),

/***/ "1/3/":
/*!*******************************************!*\
  !*** ./lib/error/SPGlobalErrorHandler.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
// Copyright (c) Microsoft. All rights reserved.

/**
 * Global error handler.
 *
 * The purpose of this class is to help measure uncaught/async errors from within the app infra.
 *
 * @internal
 */
var SPGlobalErrorHandler = /** @class */ (function () {
    function SPGlobalErrorHandler() {
    }
    /**
     * Traces errors to _TraceLogger to measure the occurrence
     *
     * The signature matches window.onerror
     */
    SPGlobalErrorHandler.basicTracingHandler = function (message, filename, lineno, colno, error) {
        var eventName = 'window.onerror';
        if (filename && SPGlobalErrorHandler._isFromFile(filename, 'CKEDITOR')) {
            // CK editor gets special handling because we want to monitor any issues with Edge
            SPGlobalErrorHandler._logErrorFromFile(message, SPGlobalErrorHandler._ckLogSource, lineno, colno, error, eventName);
        }
        else {
            var genericError = error ||
                new Error("Error:" + message + ", file:" + filename + ", line:" + lineno + ", column:" + colno);
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(SPGlobalErrorHandler._genericLogSource, genericError, eventName);
        }
    };
    SPGlobalErrorHandler._isFromFile = function (filename, match) {
        return filename.length > 0 && filename.toUpperCase().indexOf(match) !== -1;
    };
    SPGlobalErrorHandler._logErrorFromFile = function (message, logSource, lineno, colno, error, eventName) {
        var fileError = error ||
            new Error("Error:" + message + ", line:" + lineno + ", column:" + colno);
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(logSource, fileError, eventName);
    };
    SPGlobalErrorHandler._ckLogSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('CKGlobalError');
    SPGlobalErrorHandler._genericLogSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('OtherGlobalError');
    return SPGlobalErrorHandler;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPGlobalErrorHandler);


/***/ }),

/***/ "1/3F":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/FluentFeatures.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: isOneDrive, EnableFluentStylingODC, EnableFluentStyling, OnedriveFluentCustomization, EnableFluentTheme, FluentGrays, EnableHoverCardFluent, isFluentActiveOD, isHoverCardFluentActive */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isOneDrive", function() { return isOneDrive; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnableFluentStylingODC", function() { return EnableFluentStylingODC; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnableFluentStyling", function() { return EnableFluentStyling; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OnedriveFluentCustomization", function() { return OnedriveFluentCustomization; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnableFluentTheme", function() { return EnableFluentTheme; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FluentGrays", function() { return FluentGrays; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnableHoverCardFluent", function() { return EnableHoverCardFluent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFluentActiveOD", function() { return isFluentActiveOD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHoverCardFluentActive", function() { return isHoverCardFluentActive; });
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/Features */ "Y2fW");
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0__);

var isOneDrive = window['_spPageContextInfo'] && window['_spPageContextInfo'].webTemplate === "21";
// ODC Features
var EnableFluentStylingODC = { ODC: 'EnableFluentStylingODC' }; // For ODC
// ODB Features
var EnableFluentStyling = { ODB: isOneDrive ? 1118 : -1118 }; // For ODB
var OnedriveFluentCustomization = { ODB: isOneDrive ? 1155 : -1155, ODC: null, Fallback: false }; // For ODB
// SP Features
var EnableFluentTheme = { ODB: isOneDrive ? -1248 : 1248, ODC: null, Fallback: false }; // For SP
var FluentGrays = { ODB: isOneDrive ? -1099 : 1099, ODC: null, Fallback: false }; // For SP
var EnableHoverCardFluent = { ODB: isOneDrive ? -1382 : 1382, ODC: false }; // For SP
var isFluentActiveOD = _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(EnableFluentStyling) || _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(EnableFluentStylingODC);
// We want to ship hover card in consistent design for both OneDrive and SharePoint.
// This is a workaround to enable fluent design only for hover card as SharePoint fluent is not ready to ship.
// We'll remove this flight once SharePoint fluent is shipped.
var isHoverCardFluentActive = _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(EnableHoverCardFluent);
//# sourceMappingURL=FluentFeatures.js.map

/***/ }),

/***/ "2fZ3":
/*!************************************!*\
  !*** ./lib/navigator/Navigator.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../BaseApplication */ "n9Iz");
/* harmony import */ var _INavigationResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./INavigationResult */ "TNAb");
/* harmony import */ var _NavigationDataError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NavigationDataError */ "SClb");
/* harmony import */ var _NavigationDataProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./NavigationDataProvider */ "o+Qb");
/* harmony import */ var _NavigationOrchestrator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NavigationOrchestrator */ "6JwG");
/* harmony import */ var _PrefetchedDataEventArgs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PrefetchedDataEventArgs */ "n9H6");
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../common/Killswitches */ "dQCu");











var navigateQosScenarioName = 'Navigator.navigate';
var navigateToPreloadedDataQosScenarioName = 'Navigator.navigateToPreloadedData';
var prefetchNavigationDataQosScenarioName = 'Navigator.prefetch';
/**
 * Navigator for SPFx applications.
 * It allows to navigate to a different URL that is backed by an SPFx application.
 *
 * Updates all SPFx-internal data structures with the information from the new URL.
 * This includes the page context, the manifest store, the session, telemetry and the themes.
 *
 * @internal
 */
var Navigator = /** @class */ (function () {
    function Navigator(serviceScope, applicationManager) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._navigationDataProvider = new _NavigationDataProvider__WEBPACK_IMPORTED_MODULE_7__["default"](serviceScope, function (data) {
            _this._validatePreloadedData(data);
        });
        this._navigationOrchestrator = new _NavigationOrchestrator__WEBPACK_IMPORTED_MODULE_8__["default"](serviceScope, applicationManager, this);
    }
    Object.defineProperty(Navigator.prototype, "preloadedData", {
        /**
         * Returns the preloaded data used by the current page.
         * Throws if it hasn't navigated to a page yet.
         */
        get: function () {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(this._preloadedData, 'preloadedData');
            return this._preloadedData;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Navigates to a new page.
     * Requests a JSON to SharePoint server and updates all SPFx related data with the new information.
     * This includes new manifests, page context, theme, telemetry settings.
     *
     * @param url - Destination URL
     * @param props - Optional Navigation properties
     */
    Navigator.prototype.navigate = function (url, props) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(url, 'url');
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"](navigateQosScenarioName);
        return this._navigationDataProvider.getData(url, props).then(function (response) {
            return response.preloadedData.then(function (preloadedData) {
                if (response.prefetchedData) {
                    _this._raisePrefetchDataEvent(url, preloadedData, response.prefetchedData);
                }
                return _this.navigateToPreloadedData(preloadedData);
            }).then(function (navigationResult) {
                if (navigationResult &&
                    navigationResult.operation === _INavigationResult__WEBPACK_IMPORTED_MODULE_5__["NavigationOperation"].Unsupported &&
                    !_common_Killswitches__WEBPACK_IMPORTED_MODULE_10__["Killswitches"].isNavigationDataErrorKSActive()) {
                    qosMonitor.writeExpectedFailure('Unsupported');
                }
                else {
                    qosMonitor.writeSuccess();
                }
                return navigationResult;
            });
        }).catch(function (error) {
            var isExpected = false;
            if (error instanceof _NavigationDataError__WEBPACK_IMPORTED_MODULE_6__["default"]) {
                isExpected = error.isExpected;
            }
            isExpected ?
                qosMonitor.writeExpectedFailure(undefined, error) :
                qosMonitor.writeUnexpectedFailure(undefined, error);
            throw error;
        });
    };
    /**
     * Prefetches page navigation data
     *
     * @remarks
     * This is a required optimization that allows applications to pre-emptively fetch navigation data
     * so as to allow faster transitions between spfx-based applications.
     *
     * @param url - Destination URL
     * @param props - Optional Navigation properties
     *
     * @returns A promise
     */
    Navigator.prototype.prefetch = function (url, props) {
        if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
            return Promise.resolve();
        }
        var prefetchProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { isPrefetchRequest: true });
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"](prefetchNavigationDataQosScenarioName);
        return this._navigationDataProvider.getData(url, prefetchProps).then(function (response) {
            qosMonitor.writeSuccess();
        }).catch(function (error) {
            qosMonitor.writeUnexpectedFailure(undefined, error);
        });
    };
    /**
     * Given a preloaded data object, it sets up all SPFx related data with the new information from the preloaded data.
     *
     * @remarks
     * This is necessary because ListView has its own router and will give us only the object itself.
     *
     * @param preloadedData - Preloaded data object
     */
    Navigator.prototype.navigateToPreloadedData = function (preloadedData) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"](navigateToPreloadedDataQosScenarioName);
        try {
            this._validatePreloadedData(preloadedData);
            this._preloadedData = preloadedData;
            return this._navigationOrchestrator.navigate(preloadedData).then(function (navigationResult) {
                _this._preloadedData = navigationResult.preloadedData;
                qosMonitor.writeSuccess();
                return navigationResult;
            }).catch(function (error) {
                qosMonitor.writeUnexpectedFailure('AsyncError', error);
                throw error;
            });
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('SyncError', error);
            return Promise.reject(error);
        }
    };
    /**
     * Given a preloaded data object, it sets up all SPFx related data with the new information from the preloaded data.
     * It returns a promise with the loaded application.
     *
     * @remarks
     * This is used by the PlatformLoader to bootstrap an application.
     *
     * @param preloadedData - Preloaded data object
     */
    Navigator.prototype.navigateToApplication = function (preloadedData) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"](navigateToPreloadedDataQosScenarioName);
        try {
            if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                this._navigationDataProvider.buildId = this._getBuildId(preloadedData);
            }
            this._validatePreloadedData(preloadedData);
            // Starting the application requires a preloaded data object to already be set up.
            this._preloadedData = preloadedData;
            return this._navigationOrchestrator.navigate(preloadedData).then(function (navigationResult) {
                _this._preloadedData = navigationResult.preloadedData;
                qosMonitor.writeSuccess();
                return Promise.resolve(navigationResult.application);
            });
            // TODO fix this
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure(error);
            throw error;
        }
    };
    /**
     * This is an API used in the old boot sequence to load the application customizers after the application
     * has rendered. Once flight #182 (SppplatCrossAppNavigation) has been graduated this API should be removed.
     *
     * @internal
     */
    Navigator.prototype._loadApplicationCustomizers = function (preloadedData) {
        return this._navigationOrchestrator._loadApplicationCustomizers(preloadedData);
    };
    /**
     * Invalidates a cached resource by its URL. Any subsequent request for the resource
     * will be fetched from its origin and recached.
     *
     * @param url - URL to invalidate
     */
    Navigator.prototype.invalidate = function (url) {
        return this._navigationDataProvider.invalidate(url);
    };
    Navigator.prototype._validatePreloadedData = function (preloadedData) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(preloadedData, 'preloadedData');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(preloadedData.spPageContextInfo, 'preloadedData.spPageContextInfo');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(preloadedData.clientSideApplicationId, 'preloadedData.clientSideApplicationId');
        if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isTrue(  true || false, 'NavigationDataProvider.buildId');
        }
    };
    Navigator.prototype._raisePrefetchDataEvent = function (url, preloadedData, prefetchData) {
        prefetchData.then(function (data) {
            if (data) {
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseStickyEvent(_BaseApplication__WEBPACK_IMPORTED_MODULE_4__["default"]._prefetchedDataEventName, new _PrefetchedDataEventArgs__WEBPACK_IMPORTED_MODULE_9__["default"](preloadedData.clientSideApplicationId, url, data));
            }
        });
    };
    /**
     * Extracts the current build id from a string in the first manifest.
     * This is a temporary solution until a better solution is arrived at
     * such as including the build id at the root of the preload data.
     *
     * @param preloadedData - preload data for a given application
     */
    Navigator.prototype._getBuildId = function (preloadedData) {
        try {
            var baseUrl = preloadedData.manifests[0].loaderConfig.internalModuleBaseUrls[0];
            return baseUrl.slice(baseUrl.indexOf('sp-client-'), -1);
        }
        catch (error) {
            return '';
        }
    };
    return Navigator;
}());
/* harmony default export */ __webpack_exports__["default"] = (Navigator);


/***/ }),

/***/ "2mC7":
/*!********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/events/Api.event.js ***!
  \********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var PairedEventBase_1 = __webpack_require__(/*! ../PairedEventBase */ "DAYU");
var Qos_event_1 = __webpack_require__(/*! ./Qos.event */ "/TBc");
var ResultTypeEnum_1 = __webpack_require__(/*! ./ResultTypeEnum */ "+AHM");
exports.ResultTypeEnum = ResultTypeEnum_1.ResultTypeEnum;
exports.Api = PairedEventBase_1.createPairedEvent({
    eventName: 'Api,Qos,',
    shortEventName: 'Api'
}, {
    url: 1 /* String */
}, Qos_event_1.Qos);
exports.default = exports.Api;
//# sourceMappingURL=Api.event.js.map

/***/ }),

/***/ "2q6Q":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__2q6Q__;

/***/ }),

/***/ "45U0":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/WebThemeProvider.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: WebThemeProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebThemeProvider", function() { return WebThemeProvider; });
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Promise */ "MS/P");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-utilities/lib/killswitch/Killswitch */ "WA4G");
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_odsp_utilities_lib_theming_ThemeProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/ThemeProvider */ "H4yp");
/* harmony import */ var _ms_odsp_utilities_lib_theming_ThemeProvider__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_ThemeProvider__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _interfaces_WebTemplateType__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../interfaces/WebTemplateType */ "vtqB");
/* harmony import */ var _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/RgbaColor */ "w/WL");
/* harmony import */ var _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _ThemeUtilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ThemeUtilities */ "ApOT");
// OneDrive:IgnoreCodeCoverage






/**
 * Provides theme data for the context web, either from a cache or from the server.
 */
var WebThemeProvider = /** @class */ (function () {
    function WebThemeProvider(params) {
        // Accessing _spPageContextInfo via window since this code needs to run before app boot.
        this._pageContext = params.pageContext ? params.pageContext : window["_spPageContextInfo"];
        this._getThemeDataSource = params.getThemeDataSource;
        this._themeProvider = new _ms_odsp_utilities_lib_theming_ThemeProvider__WEBPACK_IMPORTED_MODULE_2___default.a(this._loadTheme.bind(this));
    }
    /**
     * Loads a map from theme tokens (slots) to values (usually colors).
     * @param {boolean} forceUpdate If true, load fresh server data, ignoring the cache.
     */
    WebThemeProvider.prototype.loadThemeSlotsMap = function (forceUpdate) {
        var cacheToken = this._getThemeCacheToken();
        if (cacheToken) {
            return this._themeProvider.loadThemeTokenMap(cacheToken, forceUpdate);
        }
        else {
            // No theme.
            return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0___default.a.resolve();
        }
    };
    WebThemeProvider.prototype.loadFullFormattedThemeData = function (forceUpdate) {
        var _this = this;
        return this.loadFullThemeData(forceUpdate).then(function (result) {
            if (!result) {
                return undefined;
            }
            var palette = {};
            var themeDataPalette = result.palette;
            for (var key in themeDataPalette) {
                var color = themeDataPalette[key];
                if (color) {
                    palette[key] = _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_4___default.a.toHtmlString(color);
                }
            }
            if (result.backgroundImageUri) {
                palette['backgroundImageUri'] = _ms_odsp_utilities_lib_theming_ThemeProvider__WEBPACK_IMPORTED_MODULE_2___default.a.getBackgroundUrl(result);
            }
            var theme = {
                palette: palette,
                isInverted: result.isInverted
            };
            if (!_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_1__["Killswitch"].isActivated('9bb7294d-5899-412a-8d88-0aaea374b8b8', '09/03/2019', 'Apply theme defaults at source')) {
                theme = Object(_ThemeUtilities__WEBPACK_IMPORTED_MODULE_5__["applySpThemeDefaults"])(theme, _this._pageContext);
            }
            return theme;
        });
    };
    /**
     * @deprecated use loadFullFormattedThemeData instead
     * Loads relevant information about the site theme. For just the colors, use loadThemeTokenMap.
     * @param {boolean} forceUpdate If true, load fresh server data, ignoring the cache.
     */
    WebThemeProvider.prototype.loadFullThemeData = function (forceUpdate) {
        var cacheToken = this._getThemeCacheToken();
        if (cacheToken) {
            return this._themeProvider.loadThemeData(cacheToken, forceUpdate);
        }
        else {
            // No theme.
            var noThemeData = void 0;
            return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(noThemeData);
        }
    };
    /**
     * Gets the theme cache token for the current page load.
     */
    WebThemeProvider.prototype._getThemeCacheToken = function () {
        var cacheToken;
        var pageContext = this._pageContext;
        // Return the themedCssFolderUrl instead of the themeCacheToken, since
        // we do not depend on the web or its version. Those would be needed if
        // we required foreground-image theming rules, as in classic theming.
        if (pageContext) {
            var webTemplate = Number(pageContext.webTemplate);
            var groupColor = webTemplate === _interfaces_WebTemplateType__WEBPACK_IMPORTED_MODULE_3__["WebTemplateType"].teamSite ||
                webTemplate === _interfaces_WebTemplateType__WEBPACK_IMPORTED_MODULE_3__["WebTemplateType"].group ? pageContext.groupColor : undefined;
            // If themedCssFolderUrl is null or empty, there is no web theme.
            // But if groupColor is set, we can extend that to a theme for the page.
            // Add the web template ID into a groupColor-based token since some templates
            // will behave differently (e.g. ODB will not apply the groupColor).
            var groupColorToken = groupColor ? groupColor + ";web#" + pageContext.webTemplate : null;
            cacheToken = pageContext.themedCssFolderUrl || groupColorToken || null;
        }
        return cacheToken;
    };
    /**
     * Loads the theme data from an appopriate data source.
     * @param {boolean} forceUpdate If true, load fresh server data, ignoring the cache.
     */
    WebThemeProvider.prototype._loadTheme = function (forceUpdate) {
        // Only load this module if it has been bundled with the app.
        // It is possible that this will load additional modules on demand.
        // This way, only SPO apps need a WebThemeDataSource.
        var shouldTheme = !!this._getThemeCacheToken();
        if (shouldTheme) {
            if (!this._themeDataSource) {
                this._themeDataSource = this._getThemeDataSource();
            }
            return this._themeDataSource.then(function (dataSource) {
                if (dataSource) {
                    return dataSource.loadTheme(forceUpdate);
                }
                return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0___default.a.resolve();
            });
        }
        return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_0___default.a.resolve();
    };
    return WebThemeProvider;
}());

//# sourceMappingURL=WebThemeProvider.js.map

/***/ }),

/***/ "4QmI":
/*!*****************************************************************!*\
  !*** ./lib/extensibility/customAction/CustomActionLocations.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Constants for the custom action locations that are used with client-side extensions.
 *
 * For more info about custom actions, see this reference:
 * https://msdn.microsoft.com/en-us/library/office/ms460194.aspx
 *
 * @alpha
 */
var CustomActionLocations = /** @class */ (function () {
    function CustomActionLocations() {
    }
    /**
     * Used to register application customizers, which run when the browser page loads.
     *
     * Manifest extension type: "ApplicationCustomizer"
     * Base class:              BaseApplicationCustomizer
     */
    CustomActionLocations.APPLICATION_CUSTOMIZER = 'ClientSideExtension.ApplicationCustomizer';
    /**
     * Used to add menu items to the right-click context menu for the SharePoint list view.
     *
     * Manifest extension type: "ListViewCommandSet"
     * Base class:              BaseListViewCommandSet
     */
    CustomActionLocations.LISTVIEW_COMMANDSET_CONTEXTMENU = 'ClientSideExtension.ListViewCommandSet.ContextMenu';
    /**
     * Used to add menu items to the top menu for a SharePoint list view.
     *
     * Manifest extension type: "ListViewCommandSet"
     * Base class:              BaseListViewCommandSet
     */
    CustomActionLocations.LISTVIEW_COMMANDSET_COMMANDBAR = 'ClientSideExtension.ListViewCommandSet.CommandBar';
    /**
     * Used to add menu items to the SharePoint list view; the location is up to the application's
     * discretion.
     *
     * Manifest extension type: "ListViewCommandSet"
     * Base class:              BaseListViewCommandSet
     */
    CustomActionLocations.LISTVIEW_COMMANDSET_DEFAULT = 'ClientSideExtension.ListViewCommandSet';
    /**
     * Used to register search query modifier, to be used in search results pages and search suggestions.
     *
     * Manifest extension type: "SearchQueryModifier"
     * Base class:              BaseSearchQueryModifier
     */
    CustomActionLocations.SEARCH_QUERY_MODIFIER = 'ClientSideExtension.SearchQueryModifier';
    return CustomActionLocations;
}());
/* harmony default export */ __webpack_exports__["default"] = (CustomActionLocations);


/***/ }),

/***/ "5BLP":
/*!********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/RequestDurationLoggingHelper.js ***!
  \********************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// OneDrive:IgnoreCodeCoverage
var SimpleUri_1 = __webpack_require__(/*! ../uri/SimpleUri */ "DYAW");
/**
 * This function returns the request duration recording by the browser via window.performance.getEntries().
 * @param url
 * @param executeTimeStamp
 */
function getRequestEntryDurationMetrics(url, requestPerformanceStartTime) {
    if (!window || !window.performance || !url || !requestPerformanceStartTime) {
        return { duration: -1 };
    }
    try {
        var entries = performance.getEntriesByType("resource");
        // If targetOrigin is missing it means the url is relative. In order to compare urls with the ones we get from performance.getEntries()
        // we need to have a complete url, so pre-pend current origin to relative url.
        var targetOrigin = new SimpleUri_1.SimpleUri(url).authority;
        if (!targetOrigin) {
            var currentOrigin = window.location && new SimpleUri_1.SimpleUri(window.location.href).authority;
            url = currentOrigin + url;
        }
        var entry = void 0;
        // Performance entries are in chronological order of request starttime, we look back from end of the list to start from most recent entry.
        for (var i = entries.length - 1; i >= 0; i--) {
            var currentEntry = entries[i];
            // We want to find the request record that was made most-immediately after client initiated the request
            if (currentEntry.startTime < requestPerformanceStartTime) {
                break;
            }
            // Filter to entry that matches the request url
            if (decodeURIComponent(currentEntry.name) === decodeURIComponent(url)) {
                entry = currentEntry;
            }
        }
        if (entry) {
            var pickedMetrics = (function (_a) {
                var connectEnd = _a.connectEnd, connectStart = _a.connectStart, decodedBodySize = _a.decodedBodySize, domainLookupend = _a.domainLookupend, domainLookupStart = _a.domainLookupStart, _b = _a.duration, duration = _b === void 0 ? -1 : _b, // Default to -1 if not available to indicate error
                encodedBodySize = _a.encodedBodySize, fetchStart = _a.fetchStart, nextHopProtocol = _a.nextHopProtocol, redirectEnd = _a.redirectEnd, redirectStart = _a.redirectStart, requestStart = _a.requestStart, responseEnd = _a.responseEnd, responseStart = _a.responseStart, secureConnectionStart = _a.secureConnectionStart, startTime = _a.startTime, transferSize = _a.transferSize, workerStart = _a.workerStart;
                return ({
                    connectEnd: connectEnd,
                    connectStart: connectStart,
                    decodedBodySize: decodedBodySize,
                    domainLookupend: domainLookupend,
                    domainLookupStart: domainLookupStart,
                    duration: duration,
                    encodedBodySize: encodedBodySize,
                    fetchStart: fetchStart,
                    nextHopProtocol: nextHopProtocol,
                    redirectEnd: redirectEnd,
                    redirectStart: redirectStart,
                    requestStart: requestStart,
                    responseEnd: responseEnd,
                    responseStart: responseStart,
                    secureConnectionStart: secureConnectionStart,
                    startTime: startTime,
                    transferSize: transferSize,
                    workerStart: workerStart
                });
            })(entry);
            return pickedMetrics;
        }
        else {
            return { duration: -1 /* Default to -1 if not available to indicate error */ };
        }
    }
    catch (ex) {
        return { duration: -1 /* Default to -1 if not available to indicate error */ };
    }
}
exports.getRequestEntryDurationMetrics = getRequestEntryDurationMetrics;
//# sourceMappingURL=RequestDurationLoggingHelper.js.map

/***/ }),

/***/ "5aZ1":
/*!********************************************************!*\
  !*** ./lib/extensibility/BaseApplicationCustomizer.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-extension-base */ "ZFc5");
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__);




/**
 * This is the base class that third parties should extend when implementing
 * a client-side extension that runs when an application is first starting.
 *
 * @remarks
 * In the component manifest, the "extensionType" should be set to "ApplicationCustomizer".
 *
 * Example usage scenarios for an application customizer might include: rendering custom
 * UI elements inside a SharePoint content placeholder, tracking page load statistics,
 * or automatically logging the user out after a certain time period.
 *
 * @public
 */
var BaseApplicationCustomizer = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseApplicationCustomizer, _super);
    function BaseApplicationCustomizer() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     * Initialization code for all the application customizers.
     * Sets up the placeholder setup virtual function with the placeholder changed event.
     *
     * @internal
     */
    BaseApplicationCustomizer.prototype._initializeExtensionType = function () {
        _super.prototype._initializeExtensionType.call(this);
        // Set up if the extension doesn't override the function with a different signature.
        // As this function was added later there is a chance they already used the name.
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"]('BaseApplicationCustomizer.onPlaceholdersChanged.setUp');
        if (this.onPlaceholdersChanged.length === 1) {
            this._placeholdersChangedCallback = this.onPlaceholdersChanged.bind(this, this.context.placeholderProvider);
            this.context.placeholderProvider.changedEvent.add(this, this._placeholdersChangedCallback);
            qosMonitor.writeSuccess();
        }
        else {
            qosMonitor.writeExpectedFailure('DifferentSignature');
        }
    };
    /**
     * {@inheritDoc @microsoft/sp-component-base#BaseComponent.dispose}
     */
    BaseApplicationCustomizer.prototype.dispose = function () {
        if (this._placeholdersChangedCallback) {
            this.context.placeholderProvider.changedEvent.remove(this, this._placeholdersChangedCallback);
        }
        _super.prototype.dispose.call(this);
    };
    /**
     * This event method is called when the placeholders of the host application change, come into
     * existence, or disappear.
     */
    BaseApplicationCustomizer.prototype.onPlaceholdersChanged = function (placeholderProvider) {
        return;
    };
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplicationCustomizer.prototype, "onPlaceholdersChanged", null);
    return BaseApplicationCustomizer;
}(_microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__["BaseExtension"]));
/* harmony default export */ __webpack_exports__["default"] = (BaseApplicationCustomizer);


/***/ }),

/***/ "5z2F":
/*!********************************************!*\
  !*** external "@ms/sp-load-themed-styles" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__5z2F__;

/***/ }),

/***/ "6GSH":
/*!*******************************************!*\
  !*** ./lib/pageChrome/SPThemeProvider.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ms_odsp_datasources_lib_providers_theming_WebThemeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-datasources/lib/providers/theming/WebThemeProvider */ "45U0");
/* harmony import */ var _ms_odsp_datasources_lib_providers_theming_ThemeInitializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-datasources/lib/providers/theming/ThemeInitializer */ "Y/uW");
/* harmony import */ var _ms_odsp_datasources_lib_dataSources_theming_spList_WebThemeDataSource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-datasources/lib/dataSources/theming/spList/WebThemeDataSource */ "dL3a");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_4__);





/**
 * The class controls applying a theme to the current Page.
 * The theme is a web level setting, if a theme is applied this class with call loadThemedStyles
 * which will update the styles that are registered with load-themed-styles.
 *
 * @internal
 */
var SPThemeProvider = /** @class */ (function () {
    function SPThemeProvider(serviceScope) {
        var _this = this;
        serviceScope.whenFinished(function () {
            _this._pageContext = serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_0__["PageContext"].serviceKey);
            _this._themeFactoryProvider = {
                webThemeProvider: function (pageContext) { return _this._getThemeProvider(pageContext); }
            };
        });
    }
    SPThemeProvider.prototype.loadThemedStyles = function (forceUpdate) {
        return _ms_odsp_datasources_lib_providers_theming_ThemeInitializer__WEBPACK_IMPORTED_MODULE_2__["ThemeInitializer"].initializeTheme(this._themeFactoryProvider, this._pageContext.legacyPageContext, forceUpdate);
    };
    SPThemeProvider.prototype._getThemeProvider = function (pageContext) {
        var _this = this;
        return new _ms_odsp_datasources_lib_providers_theming_WebThemeProvider__WEBPACK_IMPORTED_MODULE_1__["WebThemeProvider"]({
            pageContext: pageContext,
            getThemeDataSource: function () { return _this._getThemeDataSource(); }
        });
    };
    SPThemeProvider.prototype._getThemeDataSource = function () {
        var themeDataSource = new _ms_odsp_datasources_lib_dataSources_theming_spList_WebThemeDataSource__WEBPACK_IMPORTED_MODULE_3__["default"](this._pageContext.legacyPageContext);
        return _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_4__["Promise"].resolve(themeDataSource);
    };
    return SPThemeProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPThemeProvider);


/***/ }),

/***/ "6JwG":
/*!*************************************************!*\
  !*** ./lib/navigator/NavigationOrchestrator.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _extensibility_SearchQueryManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../extensibility/SearchQueryManager */ "efvT");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _ApplicationManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ApplicationManager */ "Q81X");
/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../BaseApplication */ "n9Iz");
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/Flights */ "w4+A");
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/Killswitches */ "dQCu");
/* harmony import */ var _extensibility_ApplicationCustomizerLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../extensibility/ApplicationCustomizerLoader */ "Rr6l");
/* harmony import */ var _pageChrome_SPMasterChrome__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../pageChrome/SPMasterChrome */ "vt24");
/* harmony import */ var _pageChrome_SPPageChrome__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../pageChrome/SPPageChrome */ "KdXK");
/* harmony import */ var _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../pageChrome/SPThemeProvider */ "6GSH");
/* harmony import */ var _INavigationResult__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./INavigationResult */ "TNAb");















/**
 * It orchestrates all different steps to navigate to an SPFx application.
 *
 * This includes updating the Page Context, loading the application customizers, initializing the application, etc.
 */
var NavigationOrchestrator = /** @class */ (function () {
    /**
     * Creates a NavigationOrchestrator.
     *
     * @param serviceScope - Root service scope
     * @param applicationManager - Depending on the bootstrapping sequence, application manager is
     *                             injected or created inside.
     */
    function NavigationOrchestrator(serviceScope, applicationManager, navigator) {
        this._numAppsInitializedInSession = 0;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._serviceScope = serviceScope;
        this._applicationManager = applicationManager || new _ApplicationManager__WEBPACK_IMPORTED_MODULE_6__["default"](serviceScope, navigator);
        this._pageContext = serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__["PageContext"].serviceKey);
        this._searchQueryManager = serviceScope.consume(_extensibility_SearchQueryManager__WEBPACK_IMPORTED_MODULE_4__["default"].serviceKey);
        this._applicationCustomizerLoader = new _extensibility_ApplicationCustomizerLoader__WEBPACK_IMPORTED_MODULE_10__["default"](serviceScope);
    }
    /**
     * Raises an event for a page navigation.
     */
    NavigationOrchestrator.raiseNavigatedEvent = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseStickyEvent(_BaseApplication__WEBPACK_IMPORTED_MODULE_7__["default"]._navigatedEventName, {});
    };
    /**
     * Does all the operation to navigate to a new preloaded data.
     *
     * @remarks
     * It assumes the preloaded data has already been validated. Not null, with a spPageContextInfo and an application id.
     */
    NavigationOrchestrator.prototype.navigate = function (preloadedData) {
        var _this = this;
        var currentAppId = this._applicationManager.currentApplicationId;
        var appLoaded = !currentAppId.equals(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].empty);
        var isSameApp = currentAppId.equals(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(preloadedData.clientSideApplicationId) || _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].empty);
        if (_common_Killswitches__WEBPACK_IMPORTED_MODULE_9__["Killswitches"].isInplaceNavigationKSActive()) {
            // Cross-app navigation is not supported without the new boot sequence. Return Unsupported.
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                if (appLoaded && !isSameApp) {
                    return Promise.resolve({
                        preloadedData: preloadedData,
                        application: undefined,
                        operation: _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationOperation"].Unsupported
                    });
                }
            }
        }
        else {
            var isAppIdSameOrEmpty = isSameApp || !appLoaded;
            var unsupportedReason = this._isNavigationSupportedWithReason(preloadedData, this._pageContext, isAppIdSameOrEmpty);
            if (unsupportedReason !== undefined) {
                return Promise.resolve({
                    preloadedData: preloadedData,
                    application: undefined,
                    operation: _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationOperation"].Unsupported,
                    unsupportedReason: unsupportedReason
                });
            }
        }
        this._fixPreloadedDataItem(preloadedData);
        var isCrossSite = this._isCrossSite(preloadedData, this._pageContext);
        // TODO: demyren: VSO:428542 - clean up when moving to new PageContext
        this._pageContext.initialize(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__["SharePointPageContextDataProvider"]._createPageContextData(preloadedData.spPageContextInfo), preloadedData.spPageContextInfo);
        _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_ManifestStore"].instance.replaceManifests(preloadedData.manifests);
        // Before initializing application customizers we should make sure that the page chrome is initialized.
        // Page chrome initializes the dialog manager.
        if (!_ApplicationManager__WEBPACK_IMPORTED_MODULE_6__["default"]._isChromelessApplication(preloadedData.clientSideApplicationId)) {
            if (_common_Flights__WEBPACK_IMPORTED_MODULE_8__["Flights"].useNewChromeSequence() && !this._masterChrome) {
                this._masterChrome = new _pageChrome_SPMasterChrome__WEBPACK_IMPORTED_MODULE_11__["default"]();
            }
            if (_common_Flights__WEBPACK_IMPORTED_MODULE_8__["Flights"].useNextGenSPA) {
                if (!this._pageChrome) {
                    this._pageChrome = new _pageChrome_SPPageChrome__WEBPACK_IMPORTED_MODULE_12__["default"](this._serviceScope, this._masterChrome);
                }
            }
            else {
                this._pageChrome = new _pageChrome_SPPageChrome__WEBPACK_IMPORTED_MODULE_12__["default"](this._serviceScope, this._masterChrome);
            }
        }
        if (isCrossSite && !_ApplicationManager__WEBPACK_IMPORTED_MODULE_6__["default"]._isChromelessApplication(preloadedData.clientSideApplicationId)) {
            if (_common_Killswitches__WEBPACK_IMPORTED_MODULE_9__["Killswitches"].themeProviderOverrideKSActive()) {
                var themeProvider = new _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_13__["default"](this._serviceScope);
                themeProvider.loadThemedStyles();
            }
            else if (appLoaded && isSameApp) {
                this._applicationManager.currentApplication._loadTheme();
            }
        }
        this._updateTelemetry(preloadedData);
        // Discouraging application developers to use spPageContextInfo and instead to use the Page Context API.
        preloadedData.spPageContextInfo = undefined;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Session"]._changePage();
        NavigationOrchestrator.raiseNavigatedEvent();
        if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
            // If it's the same application, just return with the result.
            if (isSameApp) {
                this._initializeSearchQuery(preloadedData);
                // The application doesn't change, but the preloaded data has. We need to re-load the app customizers.
                if (this._applicationManager.currentApplication.delayExtensionsLoading()) {
                    this._initializeExtensionsContext(preloadedData);
                }
                else {
                    this._loadApplicationCustomizers(preloadedData);
                }
                return Promise.resolve({
                    preloadedData: preloadedData,
                    application: this._applicationManager.currentApplication,
                    operation: _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationOperation"].UpdateContext
                });
            }
            else {
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_5__["_PerformanceLogger"].markCrossAppNavigationStart();
                return this._applicationManager.startApplication(preloadedData, this._pageChrome).then(function (application) {
                    _this._numAppsInitializedInSession++;
                    _this._initializeSearchQuery(preloadedData);
                    // Load app customizers after the application has rendered to )ensure placeholders have been set up.
                    if (_this._applicationManager.currentApplication.delayExtensionsLoading()) {
                        _this._initializeExtensionsContext(preloadedData);
                    }
                    else {
                        _this._loadApplicationCustomizers(preloadedData);
                    }
                    return Promise.resolve({
                        preloadedData: preloadedData,
                        application: application,
                        operation: _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationOperation"].LoadApplication
                    });
                });
            }
        }
        else {
            // In the old boot sequence, ApplicationManager calls Navigator, not the other way around
            // In this case, nobody will read the application property so it can be left undefined
            return Promise.resolve({
                preloadedData: preloadedData,
                application: undefined,
                operation: _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationOperation"].UpdateContext
            });
        }
    };
    NavigationOrchestrator.prototype._initializeExtensionsContext = function (preloadedData) {
        if (this._appSupportsExtensions(preloadedData)) {
            this._applicationCustomizerLoader.initializeExtensionsContext(preloadedData.customActions);
        }
    };
    /**
     * Loads the application customizers for the current page.
     *
     * @remarks
     * This function is internal, and not private, because it needs to be used by the ApplicationManager when the
     * flight #182 (SppplatCrossAppNavigation) is off. Once the flight is graduated this function should be private.
     *
     * @param preloadedData - Preloaded data for the current page.
     *
     * @internal
     */
    NavigationOrchestrator.prototype._loadApplicationCustomizers = function (preloadedData) {
        if (this._appSupportsExtensions(preloadedData)) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(NavigationOrchestrator._logSource, 'Loading application customizers');
            return this._applicationCustomizerLoader.loadExtensions(preloadedData.customActions);
        }
        else {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(NavigationOrchestrator._logSource, 'Application Customizer is not supported for classic pages and workbench.');
            return Promise.resolve();
        }
    };
    /**
     * Every time the URL gets updated (and there is a navigation) the search query needs to be updated
     * in the page context.
     * It's done in an async way to include loading SearchQueryModifier extensions when necessary.
     *
     * Setting up the search query is disabled for applications that don't have this scenario.
     * If that situation changes (like SPHome supporting search scenario) the check will need to be revisited.
     */
    NavigationOrchestrator.prototype._initializeSearchQuery = function (preloadedData) {
        var _this = this;
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1626 /* CSISearchQueryExtension */) &&
            preloadedData.clientSideApplicationId !== NavigationOrchestrator.classicPagesComponentId &&
            preloadedData.clientSideApplicationId !== NavigationOrchestrator.workbenchComponentId &&
            preloadedData.clientSideApplicationId !== NavigationOrchestrator.spHomeComponentId) {
            return this._searchQueryManager.initialize(preloadedData)
                .then(function () { return _this._searchQueryManager.getSearchQuery(); })
                .then(function (query) { return _this._pageContext._setSearchQuery(query); });
        }
        return Promise.resolve();
    };
    NavigationOrchestrator.prototype._appSupportsExtensions = function (preloadedData) {
        if (preloadedData.clientSideApplicationId !== NavigationOrchestrator.classicPagesComponentId &&
            preloadedData.clientSideApplicationId !== NavigationOrchestrator.workbenchComponentId) {
            return true;
        }
        return false;
    };
    NavigationOrchestrator.prototype._updateTelemetry = function (preloadedData) {
        var _a = this._pageContext.legacyPageContext, correlationId = _a.correlationId, siteId = _a.siteId, webId = _a.webId;
        var emptyIdValueForMerge = ''; // merge inside updateSettings doesn't overwrite if undefined
        var listId = (this._pageContext.list && this._pageContext.list.id.toString()) ||
            emptyIdValueForMerge;
        var uniqueId = (preloadedData.item && preloadedData.item.UniqueId) ||
            emptyIdValueForMerge;
        // This will eventually be removed when the migration to Diagnostics is complete
        var manifestAlias = preloadedData && preloadedData.manifests && preloadedData.manifests.length > 0 ?
            preloadedData.manifests[0].alias :
            '';
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_5__["_Telemetry"].updateSettings({
            siteId: siteId,
            webId: webId,
            listId: listId,
            listItemUniqueId: uniqueId,
            correlationId: correlationId
        }, manifestAlias /** used for workload name */);
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_Diagnostics"].updateSettings({
            siteId: siteId,
            webId: webId,
            listId: listId,
            listItemUniqueId: uniqueId,
            correlationId: correlationId
        });
    };
    /**
     * Returns true if a navigator from the page context to the new preloaded data is a cross-site navigation.
     * This operation needs to happen before updating the page context with the new preloaded data.
     */
    NavigationOrchestrator.prototype._isCrossSite = function (preloadedData, pageContext) {
        if (!pageContext.isInitialized) { // This happens in the first load.
            return false;
        }
        return !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(preloadedData.spPageContextInfo.webId).equals(pageContext.web.id) ||
            !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(preloadedData.spPageContextInfo.siteId).equals(pageContext.site.id);
    };
    NavigationOrchestrator.prototype._fixPreloadedDataItem = function (preloadedData) {
        var INVALID_PAGE_ITEM_ID = -1;
        // Use the preloadedData's item id if the spPageContextInfo item id is unavailable
        // The workbench can provide a list item via query string which will not be reflected in the
        // spPageContextInfo variable.
        if (preloadedData.spPageContextInfo.pageItemId === INVALID_PAGE_ITEM_ID &&
            preloadedData.item &&
            preloadedData.item.ID !== INVALID_PAGE_ITEM_ID) {
            preloadedData.spPageContextInfo.pageItemId = preloadedData.item.ID;
        }
        return preloadedData;
    };
    /**
     * Determines whether inplace navigation is supported.
     *
     * @param preloadedData - Application preloaded data
     * @param pageContext - Application context
     * @param isSameAppId - Whether the navigation is happening within the same app
     *
     * @returns True if navigation is supported else false
     */
    NavigationOrchestrator.prototype._isNavigationSupportedWithReason = function (preloadedData, pageContext, isSameAppId) {
        if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
            return isSameAppId ? undefined : _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationUnsupportedReason"].AppTransitionNotEnabled;
        }
        var isDifferentLocale = pageContext.isInitialized &&
            pageContext.cultureInfo.currentUICultureName !== preloadedData.spPageContextInfo.currentUICultureName;
        // Navigation is supported if the target locale is the same and the target application id is same as current
        // application Id or the number of in-place navigations are within the threshold.
        if (isDifferentLocale) {
            return _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationUnsupportedReason"].LocaleChange;
        }
        if (!isSameAppId && this._numAppsInitializedInSession > NavigationOrchestrator.maxSupportedAppsInSession) {
            return _INavigationResult__WEBPACK_IMPORTED_MODULE_14__["NavigationUnsupportedReason"].TransitionsExceeded;
        }
        return undefined;
    };
    NavigationOrchestrator.classicPagesComponentId = 'eb4b666b-5c29-4dad-9a99-23613f21a2b7';
    NavigationOrchestrator.workbenchComponentId = '8be81a5c-af38-4bb2-af97-afa3b64dfbed';
    NavigationOrchestrator.spHomeComponentId = '1f019ae1-2de1-4f44-b723-00a6ec1d7445';
    NavigationOrchestrator._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('NavigationOrchestrator');
    NavigationOrchestrator.maxSupportedAppsInSession = 15;
    return NavigationOrchestrator;
}());
/* harmony default export */ __webpack_exports__["default"] = (NavigationOrchestrator);


/***/ }),

/***/ "6TYi":
/*!*********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/features/FeatureOverrides.js ***!
  \*********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/features/FeatureOverrides.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.FeatureOverrides;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "6cmh":
/*!******************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/base/ServerData.js ***!
  \******************************************************************************************************************************************************************************************/
/*! exports provided: SERVICEWORKER_DATASOURCE_HEADER_KEY, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SERVICEWORKER_DATASOURCE_HEADER_KEY", function() { return SERVICEWORKER_DATASOURCE_HEADER_KEY; });
/* harmony import */ var _ms_odsp_utilities_lib_async_Signal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Signal */ "f2ns");
/* harmony import */ var _ms_odsp_utilities_lib_async_Signal__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Signal__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-utilities/lib/uri/Uri */ "oQJL");
/* harmony import */ var _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-utilities/lib/encoding/UriEncoding */ "G7sL");
/* harmony import */ var _ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2__);



var SERVICEWORKER_DATASOURCE_HEADER_KEY = "X-SERVICEWORKER-DATA-SOURCE";
function _parseBlobError(blob) {
    var signal = new _ms_odsp_utilities_lib_async_Signal__WEBPACK_IMPORTED_MODULE_0___default.a();
    var reader;
    var onLoad = function () {
        if (reader.result) {
            var response = void 0;
            try {
                response = JSON.parse(reader.result);
                signal.complete(response);
            }
            catch (error) {
                signal.complete({ message: 'Unable to parse blob result.' });
            }
        }
    };
    var onError = function () {
        signal.complete({ message: 'Unable to read blob error response.' });
    };
    try {
        reader = new FileReader();
        reader.addEventListener('load', onLoad);
        reader.addEventListener('error', onError);
        reader.readAsText(blob);
    }
    catch (error) {
        onError();
    }
    return signal.getPromise().then(function (errorData) {
        if (reader) {
            reader.removeEventListener('load', onLoad);
            reader.removeEventListener('error', onError);
        }
        return errorData;
    });
}
var ServerData = /** @class */ (function () {
    function ServerData(request, strUrl, params) {
        this._request = request;
        this._url = strUrl;
        this._webAbsoluteUrl = params && params.webAbsoluteUrl;
        this._isCanaryRequest = params && params.isCanaryRequest;
    }
    ServerData.prototype.getSourceUrl = function () {
        return this._url;
    };
    ServerData.prototype.getAllResponseHeaders = function () {
        return this._request.getAllResponseHeaders();
    };
    ServerData.prototype.getCorrelationId = function () {
        return this._request.getResponseHeader('SPRequestGuid');
    };
    ServerData.prototype.getGroupThrottle = function () {
        return this._request.getResponseHeader('SPGroupThrottle');
    };
    ServerData.prototype.getMSCorrelationVector = function () {
        return this._request.getResponseHeader("MS-CV");
    };
    ServerData.prototype.getServiceWorkerDataSourceHeader = function () {
        return this._request.getResponseHeader(SERVICEWORKER_DATASOURCE_HEADER_KEY);
    };
    ServerData.prototype.getServiceWorkerFetchInfoFromHeader = function () {
        return this._request.getResponseHeader('X-ServiceWorkerFetchInfo');
    };
    ServerData.prototype.getStatus = function () {
        try {
            // We read the status in a try catch to avoid issues
            // with IE implementation which throws a bogus exception
            return this._request.status;
        }
        catch (e) {
            // do nothing
        }
    };
    ServerData.prototype.getAuthenticationRedirect = function () {
        return this._request.getResponseHeader('X-Forms_Based_Auth_Required');
    };
    ServerData.prototype.getResponseType = function () {
        return this._request.responseType;
    };
    ServerData.prototype.getResponseText = function () {
        if (!this._request.responseType || this._request.responseType === 'text') {
            return this._request.responseText;
        }
        else {
            return this._request.response;
        }
    };
    ServerData.prototype.getErrorResponseText = function () {
        if (this._request.responseType === 'blob') {
            var errorData = {
                status: this._request.status,
                statusText: this._request.statusText,
                infected: undefined
            };
            if (this._request.getResponseHeader('x-virus-infected')) {
                errorData.infected = true;
            }
            return errorData;
        }
        else {
            return this.getResponseText();
        }
    };
    ServerData.prototype.parseError = function () {
        var _this = this;
        var signal = new _ms_odsp_utilities_lib_async_Signal__WEBPACK_IMPORTED_MODULE_0___default.a();
        if (!this._request.responseType || this._request.responseType === 'text') {
            signal.complete(this._request.responseText);
        }
        else if (this._request.responseType === 'blob') {
            _parseBlobError(this._request.response).then(function (response) {
                var errorData = {
                    data: response,
                    status: _this.getStatus(),
                    statusText: _this._request.statusText,
                    infected: !!_this._request.getResponseHeader('x-virus-infected')
                };
                signal.complete(errorData);
            });
        }
        else {
            signal.complete(this._request.response);
        }
        return signal.getPromise();
    };
    ServerData.prototype.getValue = function (key) {
        var value;
        switch (key) {
            case ServerData.DataValueKeys.SourceURL:
                value = this.getSourceUrl();
                break;
            case ServerData.DataValueKeys.CorrelationId:
                value = this.getCorrelationId();
                break;
            case ServerData.DataValueKeys.Status:
                value = this.getStatus();
                break;
            case ServerData.DataValueKeys.AuthenticationRedirect:
                value = this.getAuthenticationRedirect();
                break;
            case ServerData.DataValueKeys.ResponseText:
                value = this.getResponseText();
                break;
            case ServerData.DataValueKeys.ErrorResponseText:
                value = this.getErrorResponseText();
                break;
        }
        return value;
    };
    ServerData.prototype.getRedirectUrl = function () {
        if (this._isCanaryRequest) {
            if (this.getStatus() === 403) {
                if (this.shouldRedirectToErrorCustomPromptLocation()) {
                    return this.getRedirectToErrorCustomPromptLocation();
                }
                else {
                    return this.getRedirectLoginPageUrl();
                }
            }
            else {
                return this.getAccessDeniedRedirectUrl();
            }
        }
        else if (this.getStatus() === 403) {
            if (this.shouldRedirectToErrorCustomPromptLocation()) {
                return this.getRedirectToErrorCustomPromptLocation();
            }
        }
        else if (this.getStatus() === 401) {
            if (this.shouldRedirectToErrorCustomPromptLocation()) {
                return this.getRedirectToErrorCustomPromptLocation();
            }
        }
    };
    ServerData.prototype.getRedirectLoginPageUrl = function () {
        var redirectUrl;
        // if users hit 403 again, they're unauthenticated, try redirect to auth.
        var redirectLoginPageURL = this.getAuthenticationRedirect();
        if (redirectLoginPageURL) {
            var redirectLoginPageUri = new _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default.a(redirectLoginPageURL);
            redirectLoginPageUri.setQueryParameter('ReturnUrl', _ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURIComponent(window.location.href));
            redirectUrl = redirectLoginPageUri.toString();
        }
        return redirectUrl;
    };
    ServerData.prototype.getAccessDeniedRedirectUrl = function () {
        var redirectUrl;
        if (this._webAbsoluteUrl) {
            var redirectLoginPageURL = (this._webAbsoluteUrl) + '/_layouts/15/AccessDenied.aspx';
            if (redirectLoginPageURL) {
                var redirectLoginPageUri = new _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default.a(redirectLoginPageURL);
                redirectLoginPageUri.setQueryParameter('Source', _ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURIComponent(window.location.href));
                redirectLoginPageUri.setQueryParameter('Type', 'list');
                redirectLoginPageUri.setQueryParameter('correlation', _ms_odsp_utilities_lib_encoding_UriEncoding__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURIComponent(this.getCorrelationId()));
                // todo: set list guid! (we don't have that info from server context yet).
                // the access denied page will still kind of work, except that we'll request access to the site, not the list.
                // redirectLoginPageUri.setQueryParameter('name', context.listName);
                // Ideally this should be using the navigation resource, but it is not guaranteed to be present here some
                // DataSources do not extend the base DataSource.
                redirectUrl = redirectLoginPageUri.toString();
            }
        }
        return redirectUrl;
    };
    ServerData.prototype.getRedirectToErrorCustomPromptLocation = function () {
        var reattestionPageUri = new _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default.a(this._request.getResponseHeader('X-SPO-ErrorCustomPromptLocation'));
        reattestionPageUri.setQueryParameter('ReturnUrl', window.location.href);
        return reattestionPageUri.toString();
    };
    /**
     * If a 401/403 is returned, check for the SharePoint custom error code that indicates the
     * user needs to reattest and redirect to the custom prompt location.
     */
    ServerData.prototype.shouldRedirectToErrorCustomPromptLocation = function () {
        var spErrorCode = this._request.getResponseHeader('X-SPO-ErrorCode');
        var legacySharePointErrorCode = this._request.getResponseHeader('sharepointerror');
        return spErrorCode === '9.3' || legacySharePointErrorCode === '-2130575129';
    };
    ServerData.prototype.getResponseHeadersDictionary = function () {
        var headerMap = {};
        // Get the raw header string
        var headerString = this.getAllResponseHeaders();
        if (headerString) {
            // Convert the header string into an array of individual headers
            var arr = headerString.trim().split(/[\r\n]+/);
            if (arr && arr.length > 0) {
                // Create a map of header names to values
                arr.forEach(function (line) {
                    var parts = line.split(": ");
                    var header = parts.shift();
                    var value = parts.join(": ");
                    headerMap[header] = value;
                });
            }
        }
        return headerMap;
    };
    /* tslint:disable:variable-name */
    ServerData.DataValueKeys = {
        // (String) Original source url for this request.
        SourceURL: 'SourceUrl',
        // (String) SharePoint CorrelationId that corresponds with this request.
        CorrelationId: 'CorrelationId',
        // (Number) HTTP status code for this request
        Status: 'Status',
        // (String) URL to redirect to in case of an error
        AuthenticationRedirect: 'AuthenticationRedirect',
        // (String) Response text for this server request.
        ResponseText: 'ResponseText',
        // (String) Error Response for this server request.
        ErrorResponseText: 'ErrorResponseText',
        // (String) GroupThrottle Response for this server request.
        GroupThrottle: 'GroupThrottle'
    };
    return ServerData;
}());
/* harmony default export */ __webpack_exports__["default"] = (ServerData);
//# sourceMappingURL=ServerData.js.map

/***/ }),

/***/ "6iXJ":
/*!***********************************!*\
  !*** external "@ms/sp-suite-nav" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__6iXJ__;

/***/ }),

/***/ "75qc":
/*!**************************************************!*\
  !*** ./lib/extensibility/ApplicationAccessor.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../BaseApplication */ "n9Iz");


/**
 * Provides access to the client-side application that is currently running.
 *
 * @remarks
 * The client-side application determines the user experience for an entire web page.
 * (It is a client-side component with a manifest; however, the SharePoint Framework
 * does not enable third parties to create their own client-side applications at this time.)
 * Within a web page, at most one client-side application will be running at a time.
 * Certain in-place navigation transitions can cause the application to be unloaded
 * and replaced by a different application.
 *
 * The ApplicationAccessor class enables extensibility components such as extensions
 * and web parts to interact with the currently running application.  It acts as
 * a proxy for the real application object (the BaseApplication subclass), to ensure
 * that extensibility components only rely on interactions that would be portable
 * across all applications.
 *
 * @public
 */
var ApplicationAccessor = /** @class */ (function () {
    /**
     * Constructs a new instance of the {@link ApplicationAccessor} class.
     * @remarks
     * Third parties should not call this constructor.  Instead, use the ApplicationAccessor
     * instance from the component context, for example {@link BaseApplicationCustomizer.context}.
     */
    function ApplicationAccessor(serviceScope) {
        this._navigatedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](_BaseApplication__WEBPACK_IMPORTED_MODULE_1__["default"]._navigatedEventName);
        this._privateLayoutChangedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](_BaseApplication__WEBPACK_IMPORTED_MODULE_1__["default"]._layoutChangedEventName);
    }
    Object.defineProperty(ApplicationAccessor.prototype, "navigatedEvent", {
        /**
         * An event that is fired when the application's top-level page context navigates
         * to a new page.
         * @remarks
         * This event fires after the top-level {@link @microsoft/sp-page-context#PageContext} has navigated
         * to a new page.
         * @eventproperty
         */
        get: function () {
            return this._navigatedEvent;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ApplicationAccessor.prototype, "_layoutChangedEvent", {
        /**
         * Event that gets raised every time the layout changes in a page
         * @eventproperty
         * @internal
         */
        get: function () {
            return this._privateLayoutChangedEvent;
        },
        enumerable: true,
        configurable: true
    });
    return ApplicationAccessor;
}());
/* harmony default export */ __webpack_exports__["default"] = (ApplicationAccessor);


/***/ }),

/***/ "7Awa":
/*!***********************************************!*\
  !*** external "@microsoft/sp-component-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__7Awa__;

/***/ }),

/***/ "7Cl3":
/*!*********************************************************!*\
  !*** ./lib/extensibility/DialogManagerConfiguration.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * A singleton class that allows the application to configure the behavior of dialog manager. If `@microsoft/sp-dialog`
 * package is loaded on the page and a dialog manager is instantiated on the page, it will look for this singleton
 * as its configuration.
 *
 * @internal
 */
var DialogManagerConfiguration = /** @class */ (function () {
    function DialogManagerConfiguration() {
    }
    Object.defineProperty(DialogManagerConfiguration, "instance", {
        get: function () {
            if (!this._instance) {
                this._instance = new DialogManagerConfiguration();
            }
            return this._instance;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DialogManagerConfiguration.prototype, "allowDialogs", {
        /**
         * If the application allows showing dialogs. Application can change this configuration in runtime. For example,
         * the application can decide to set this to false to block all dialogs based on its current state. If this property
         * is false, the dialog manager will deny all requests to show dialogs.
         *
         * Throws an error if allowDialogs is undefined.
         */
        get: function () {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._allowDialogs, 'allowDialogs');
            return this._allowDialogs;
        },
        /**
         * Sets the allowDialogs.
         * Throws an error in the parameter value is undefined.
         */
        set: function (value) {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(value, 'value');
            this._allowDialogs = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DialogManagerConfiguration.prototype, "domElement", {
        /**
         * The container div that the dialog manager will use to render the dialogs in.
         *
         * Throws an error if domElement is undefined.
         */
        get: function () {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._domElement, 'domElement');
            return this._domElement;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * initialize dialog manager configuration.
     *
     * @param domElement - The container element for dialogs
     * @param allowDialogs - Whether the dialogs should be allowed. This defaults to true and can be updated later using
     * allowDialogs property.
     */
    DialogManagerConfiguration.prototype.initialize = function (domElement, allowDialogs) {
        if (allowDialogs === void 0) { allowDialogs = true; }
        this._allowDialogs = allowDialogs;
        this._domElement = domElement;
    };
    /**
     * Disposes the current configuration. Use this when the application is being disposed. This will make sure that
     * this config is not re-used in case another application is loaded on the same page.
     * IMPORTANT NOTE: SPFx assumption is that there is only one active application on the page at a given time.
     */
    DialogManagerConfiguration.prototype.dispose = function () {
        this._allowDialogs = undefined;
        this._domElement = undefined;
    };
    return DialogManagerConfiguration;
}());
/* harmony default export */ __webpack_exports__["default"] = (DialogManagerConfiguration);


/***/ }),

/***/ "7Oog":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/CorrelationVector.js ***!
  \******************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var Guid = __webpack_require__(/*! @ms/utilities-guid/lib/Guid */ "FmHR");
var CorrelationVector = /** @class */ (function () {
    function CorrelationVector(parent, current) {
        if (parent) {
            this.root = parent.root;
            this.parent = parent.current;
        }
        else {
            this.root = this.parent = Guid.Empty;
        }
        if (current) {
            this.current = current;
        }
        else {
            this.current = Guid.generate();
        }
    }
    CorrelationVector._getCorrelationVector = function () {
        var rootVector;
        if (typeof window !== 'undefined') {
            rootVector = window.rootVector;
        }
        else if (typeof self !== 'undefined') {
            rootVector = self.rootVector;
        }
        return rootVector || new CorrelationVector();
    };
    CorrelationVector.prototype.toString = function () {
        return this.root + "#" + this.parent + "#" + this.current;
    };
    CorrelationVector.RootVector = CorrelationVector._getCorrelationVector();
    return CorrelationVector;
}());
exports.CorrelationVector = CorrelationVector;
//# sourceMappingURL=CorrelationVector.js.map

/***/ }),

/***/ "8Idf":
/*!************************************************************!*\
  !*** ./lib/frameworkPlaceholders/AadPlaceholderManager.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SPApplicationBase_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SPApplicationBase.resx */ "Cc0y");
/* harmony import */ var _extensibility_placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extensibility/placeholder/PlaceholderProvider */ "/Kpt");
/* harmony import */ var _extensibility_placeholder_PlaceholderName__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../extensibility/placeholder/PlaceholderName */ "Cs6k");
/* harmony import */ var _extensibility_placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../extensibility/placeholder/PlaceholderManager */ "/HB6");





/**
 * This class sets up an a placeholder for scenarios that token acquisition fails and will require
 * end user interaction.
 * @internal
 */
var AadPlaceholderManager = /** @class */ (function () {
    function AadPlaceholderManager() {
    }
    /**
     * Sets up a placeholder (or alert if unavailable) for the token acquisition failure event.
     */
    AadPlaceholderManager.prototype.setUpTokenAcquistionFailurePlaceholder = function (application, serviceScope) {
        var _this = this;
        var tokenProvider = _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__["_AadTokenProviders"].configurable;
        var placeHolderProvider = new _extensibility_placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_2__["default"](serviceScope, {
            sequence: 0,
            preAllocatedApplicationCustomizerBottomHeight: 0,
            preAllocatedApplicationCustomizerTopHeight: 0
        }, 'AAD Failure Placeholder'
        /* This placeholder should render over any other placeholder */ );
        var placeholderManager = serviceScope.consume(_extensibility_placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_4__["default"].serviceKey);
        placeHolderProvider.changedEvent.add(application, function () {
            if (!_this._aadPlaceHolderContent) {
                _this._aadPlaceHolderContent = placeHolderProvider.tryCreateContent(_extensibility_placeholder_PlaceholderName__WEBPACK_IMPORTED_MODULE_3__["default"].Top);
            }
        });
        tokenProvider.tokenAcquisitionEvent.add(application, function (eventArgs) {
            if (!placeholderManager.isEnabled) {
                _this._renderTokenAcquistionAlert(eventArgs);
            }
            else {
                if (_this._aadPlaceHolderContent) {
                    _this._renderTokenAcquistionPlaceholder(_this._aadPlaceHolderContent, eventArgs);
                }
                else {
                    _this._renderTokenAcquistionAlert(eventArgs);
                }
            }
        });
    };
    AadPlaceholderManager.prototype._renderTokenAcquistionPlaceholder = function (placeholderContent, eventArgs) {
        placeholderContent.domElement.setAttribute('style', 'text-align: center; padding: 10px; background-color:#fff4ce;');
        var errorMessageElement = document.createElement('span');
        errorMessageElement.innerText = eventArgs.message;
        placeholderContent.domElement.appendChild(errorMessageElement);
        if (eventArgs.redirectUrl) {
            var resolveLinkElement = document.createElement('a');
            resolveLinkElement.href = eventArgs.redirectUrl;
            resolveLinkElement.innerText = _SPApplicationBase_resx__WEBPACK_IMPORTED_MODULE_1__["default"].clickToResolveIssueLinkText;
            placeholderContent.domElement.appendChild(resolveLinkElement);
        }
    };
    AadPlaceholderManager.prototype._renderTokenAcquistionAlert = function (eventArgs) {
        if (confirm(eventArgs.message) && eventArgs.redirectUrl) {
            window.location.href = eventArgs.redirectUrl;
        }
    };
    return AadPlaceholderManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadPlaceholderManager);


/***/ }),

/***/ "8WDM":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/SingleEventBase.js ***!
  \****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:CoverageThreshold(0)
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
var EventBase_1 = __webpack_require__(/*! ./EventBase */ "P/8H");
function logData(data, parent) {
    return new this(data, EventBase_1.ClonedEventType.Single, parent);
}
function logEmptyData(parent) {
    return new this(null, EventBase_1.ClonedEventType.Single, parent);
}
function createSingleEvent(props, metadata, baseClass) {
    var SingleEvent = /** @class */ (function (_super) {
        tslib_1.__extends(SingleEvent, _super);
        function SingleEvent() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        // tslint:disable-next-line:typedef
        SingleEvent.logData = metadata ? logData : logEmptyData;
        return SingleEvent;
    }(EventBase_1.EventBase));
    EventBase_1.addEventProps(SingleEvent.prototype, props, metadata || {}, baseClass);
    return SingleEvent;
}
exports.createSingleEvent = createSingleEvent;
//# sourceMappingURL=SingleEventBase.js.map

/***/ }),

/***/ "8Z0f":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Facepile.styles.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: FacepileStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FacepileStyles", function() { return FacepileStyles; });
var FacepileStyles = function (props) {
    var theme = props.theme;
    var palette = theme.palette;
    return {
        overflowButton: {
            backgroundColor: palette.neutralLight
        },
        descriptiveOverflowButton: {
            backgroundColor: palette.neutralLight
        }
    };
};
//# sourceMappingURL=Facepile.styles.js.map

/***/ }),

/***/ "8qk/":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/scope/Scope.js ***!
  \*******************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/scope/Scope.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.Scope;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "9259":
/*!****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/theme.js ***!
  \****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @uifabric/styling/styles/theme.js
var pkg = __webpack_require__(/*! @ms/uifabric-styling-bundle */ "fglE");
module.exports = {}
for (var key in pkg) {
  if (pkg.hasOwnProperty(key)) {
    module.exports[key] = pkg[key];
  }
}
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "93Rs":
/*!***************************************!*\
  !*** ./lib/BaseApplicationContext.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BaseApplication */ "n9Iz");
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/Flights */ "w4+A");





/**
 * Context object for a client-side applications.
 *
 * @alpha
 */
var BaseApplicationContext = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseApplicationContext, _super);
    /** @internal */
    function BaseApplicationContext(parameters) {
        var _this = _super.call(this, parameters) || this;
        _this._disposed = false;
        _this._delayExtensionsLoading = false;
        _this._preloadedData = parameters.navigator.preloadedData;
        _this._navigator = parameters.navigator;
        _this._chrome = parameters.chrome;
        _this._loadType = parameters.loadType;
        _this._prefetchedDataEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["SPEvent"](_BaseApplication__WEBPACK_IMPORTED_MODULE_3__["default"]._prefetchedDataEventName);
        return _this;
    }
    /**
     * Diposes the application context
     */
    BaseApplicationContext.prototype.dispose = function () {
        if (this._disposed) {
            return;
        }
        if (this._navigator) {
            this._navigator = undefined;
        }
        if (this._chrome && !_common_Flights__WEBPACK_IMPORTED_MODULE_4__["Flights"].useNextGenSPA) {
            this._chrome.dispose();
        }
        _super.prototype.dispose.call(this);
        this._disposed = true;
    };
    /**
     * Sets the SuiteNav manager in the application context.
     */
    BaseApplicationContext.prototype.initializeSuiteNavManager = function (suiteNavManager) {
        this._suiteNavManager = suiteNavManager;
    };
    Object.defineProperty(BaseApplicationContext.prototype, "preloadedData", {
        /**
         * The preloaded data used by SPFx
         */
        get: function () { return this._preloadedData; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "navigator", {
        /**
         * The application navigator
         */
        get: function () { return this._navigator; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "chrome", {
        /**
         * The application page chrome
         */
        get: function () { return this._chrome; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "loadType", {
        /**
         * The application load type
         */
        get: function () { return this._loadType; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "prefetchedDataEvent", {
        /**
         * An event that gets fired when the application prefetched data is available.
         */
        get: function () { return this._prefetchedDataEvent; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "suiteNavManager", {
        /**
         * The SuiteNav manager
         *
         * @remarks
         * The SuiteNav manager is defined only after the application starts rendering.
         * Chromeless application do not have a SuiteNav manager.
         */
        get: function () {
            return this._suiteNavManager;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseApplicationContext.prototype, "delayExtensionsLoading", {
        /**
         * Gets a value indicating whether or not extensions loading should be delayed.
         */
        get: function () { return this._delayExtensionsLoading; },
        /**
         * Sets a value to indicate whether or not extensions loading should be delayed.
         */
        set: function (delay) { this._delayExtensionsLoading = delay; },
        enumerable: true,
        configurable: true
    });
    return BaseApplicationContext;
}(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_1__["BaseComponentContext"]));
/* harmony default export */ __webpack_exports__["default"] = (BaseApplicationContext);


/***/ }),

/***/ "97Ok":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/sp-resource-path/0.7.2/node_modules/@ms/sp-resource-path/lib-esm/index.js ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: SPResourcePath, SPResourcePathFormat */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SPResourcePath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SPResourcePath */ "g/8y");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPResourcePath", function() { return _SPResourcePath__WEBPACK_IMPORTED_MODULE_0__["SPResourcePath"]; });

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


//# sourceMappingURL=index.js.map

/***/ }),

/***/ "ApOT":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/ThemeUtilities.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: spLoadTheme, applySpThemeDefaults */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spLoadTheme", function() { return spLoadTheme; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applySpThemeDefaults", function() { return applySpThemeDefaults; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/styling/lib/styles/theme */ "9259");
/* harmony import */ var _uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/Features */ "Y2fW");
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/FeatureOverrides */ "6TYi");
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _MDL2Theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MDL2Theme */ "IGvF");
/* harmony import */ var _FluentFeatures__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FluentFeatures */ "1/3F");






/**
 * A SharePoint wrapper for Fabric's loadTheme()
 * First merges the given theme with SharePoint's default theme before calling Fabric's loadTheme().
 */
function spLoadTheme(theme, pageContext) {
    return Object(_uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_1__["loadTheme"])(applySpThemeDefaults(theme, pageContext));
}
/**
 * Merges the given theme on top of the default SharePoint theme.
 */
function applySpThemeDefaults(theme, pageContext) {
    // todo: this logic should move to sp-client masterpage
    pageContext && _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_2___default.a.initSPExpFeatures(pageContext.ExpFeatures);
    _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.evaluateCanOverride();
    // Tealification
    if (_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled({ ODB: _FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["isOneDrive"] ? -1546 : 1546 /* TealifySP */, ODC: null, Fallback: false })) {
        var tealTheme = {
            palette: {
                themePrimary: "#03787c",
                themeLighterAlt: "#f0f9fa",
                themeLighter: "#c5e9ea",
                themeLight: "#98d6d8",
                themeTertiary: "#49aeb1",
                themeSecondary: "#13898d",
                themeDarkAlt: "#026d70",
                themeDark: "#025c5f",
                themeDarker: "#014446"
            }
        };
        theme = mergeThemes(tealTheme, theme);
    }
    // Fluent effects: applies shadows and rounded corner changes
    if (!_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentTheme"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStyling"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStylingODC"])) {
        theme = mergeThemes({ effects: _MDL2Theme__WEBPACK_IMPORTED_MODULE_4__["MDL2Effects"] }, theme);
    }
    // Fluent font styles
    if (!_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentTheme"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStyling"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStylingODC"])) {
        theme = mergeThemes({ fonts: _MDL2Theme__WEBPACK_IMPORTED_MODULE_4__["MDL2FontStyles"] }, theme);
    }
    // Fluent neutral palette:
    // If flight is on and the original neutral palette is being used, override with Fluent grays.
    // This is done in a separate flight so that we can test in dogfood/MSIT, but it may not
    //   go out to prod, because this is technically overriding (but not overwriting) customer data.
    // todo: decide whether this ships to prod
    // (This overrides more then just the neutral palette, but also some invariant colors.)
    if (!_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["FluentGrays"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStyling"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_3___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_5__["EnableFluentStylingODC"])) {
        var p = theme.palette;
        // if there is no palette defined, or if the palette matches the default one
        if (!p ||
            (!p.black && !p.neutralPrimary && !p.white && !p.neutralQuaternary) ||
            (p.black && p.white && p.neutralPrimary && p.neutralQuaternary
                && p.black.indexOf('#000') === 0
                && p.white.toLowerCase().indexOf('#fff') === 0
                && p.neutralPrimary.indexOf('#333') === 0
                && p.neutralQuaternary.toLowerCase().indexOf('#d0d0d0') === 0)) {
            theme.palette = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, theme.palette, _MDL2Theme__WEBPACK_IMPORTED_MODULE_4__["MDL2Palette"]);
        }
    }
    return theme;
}
/**
 * Does the minimum (for SharePoint) to merge two partial Fabric themes
 */
function mergeThemes(originalTheme, themeOverrides) {
    originalTheme = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, originalTheme, themeOverrides, { effects: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, originalTheme.effects, themeOverrides.effects), 
        // not technically correct because there are many sub-objects, but SP doesn't care
        fonts: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, originalTheme.fonts, themeOverrides.fonts), palette: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, originalTheme.palette, themeOverrides.palette) });
    return originalTheme;
}
//# sourceMappingURL=ThemeUtilities.js.map

/***/ }),

/***/ "B1Lc":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/ContextualMenu.styles.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: ContextualMenuStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuStyles", function() { return ContextualMenuStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _styleConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styleConstants */ "YBzx");
var _a;


var CONTEXTUAL_MENU_ITEM_HEIGHT = 32;
var iconStyles = {
    maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,
    fontSize: 14,
    width: 14,
    selectors: (_a = {},
        _a[_styleConstants__WEBPACK_IMPORTED_MODULE_1__["MinimumScreenSelector"]] = {
            fontSize: 18,
            width: 18
        },
        _a)
};
var ContextualMenuStyles = {
    subComponentStyles: {
        menuItem: {
            root: {
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT
            },
            splitPrimary: {
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT
            },
            splitMenu: {
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,
                width: CONTEXTUAL_MENU_ITEM_HEIGHT // to match the numbers from the default styles
            },
            icon: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconStyles),
            checkmarkIcon: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconStyles),
            splitContainer: {
                height: CONTEXTUAL_MENU_ITEM_HEIGHT
            },
            subMenuIcon: {
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT
            }
        }
    }
};
//# sourceMappingURL=ContextualMenu.styles.js.map

/***/ }),

/***/ "BNuR":
/*!**************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/MessageBarButton.styles.js ***!
  \**************************************************************************************************************************************************************************************************************/
/*! exports provided: MessageBarButtonStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBarButtonStyles", function() { return MessageBarButtonStyles; });
var MessageBarButtonStyles = function (props) {
    var theme = props.theme;
    if (!theme) {
        throw new Error('Theme is undefined or null.');
    }
    var palette = theme.palette;
    return {
        root: {
            backgroundColor: palette.neutralQuaternaryAlt,
            height: 32,
            width: 'auto',
            minWidth: 84
        },
        rootHovered: {
            backgroundColor: palette.neutralTertiaryAlt
        },
        rootPressed: {
            backgroundColor: palette.neutralTertiary
        }
    };
};
//# sourceMappingURL=MessageBarButton.styles.js.map

/***/ }),

/***/ "Cc0y":
/*!***************************************!*\
  !*** ./lib/SPApplicationBase.resx.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_tZTEjqMO7pBJoQSOs5iS2g';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "Crvl":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/events/Trace.event.js ***!
  \*******************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var SingleEventBase_1 = __webpack_require__(/*! ../SingleEventBase */ "8WDM");
exports.Trace = SingleEventBase_1.createSingleEvent({
    eventName: 'Trace,',
    shortEventName: 'Trace',
    requiresParent: false
}, {
    message: 1 /* String */
});
//# sourceMappingURL=Trace.event.js.map

/***/ }),

/***/ "Cs6k":
/*!**********************************************************!*\
  !*** ./lib/extensibility/placeholder/PlaceholderName.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * The identifier for a content placeholder, which is a region on the
 * page where third-party extensibility components can render custom content.
 *
 * @remarks
 * For more information about placeholders, see {@link PlaceholderProvider}.
 *
 * @public
 */
var PlaceholderName;
(function (PlaceholderName) {
    /**
     * A region at the top of the page.
     * @privateRemarks
     * Used by Modern pages and Lists and libraries
     */
    PlaceholderName[PlaceholderName["Top"] = 1] = "Top";
    /**
     * A region at the bottom of the page.
     * @privateRemarks
     * Used by Modern pages and Lists and libraries
     */
    PlaceholderName[PlaceholderName["Bottom"] = 2] = "Bottom";
})(PlaceholderName || (PlaceholderName = {}));
/* harmony default export */ __webpack_exports__["default"] = (PlaceholderName);


/***/ }),

/***/ "CwP6":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/MessageBar.styles.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: MessageBarStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBarStyles", function() { return MessageBarStyles; });
var MessageBarStyles = function (props) {
    return {
        actions: {
            margin: '8px 12px 8px 8px'
        },
        dismissSingleLine: {
            display: 'flex',
            alignItems: props.truncated ? 'flex-start' : 'center',
            marginRight: 8
        }
    };
};
//# sourceMappingURL=MessageBar.styles.js.map

/***/ }),

/***/ "CysO":
/*!*********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/GroupedList.styles.js ***!
  \*********************************************************************************************************************************************************************************************************/
/*! exports provided: GroupHeaderStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupHeaderStyles", function() { return GroupHeaderStyles; });
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");

var GroupHeaderStyles = function (props) {
    var compact = props.compact, theme = props.theme;
    var fonts = theme.fonts;
    var finalHeight = compact ? 32 : 42;
    return {
        groupHeaderContainer: {
            height: finalHeight
        },
        check: {
            height: finalHeight
        },
        expand: {
            height: finalHeight,
            fontSize: compact ? fonts.medium.fontSize : 18
        },
        title: {
            fontSize: compact ? fonts.large.fontSize : fonts.xLarge.fontSize,
            fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semilight
        }
    };
};
//# sourceMappingURL=GroupedList.styles.js.map

/***/ }),

/***/ "DAYU":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/PairedEventBase.js ***!
  \*******************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:CoverageThreshold(75)
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
tslib_1.__exportStar(__webpack_require__(/*! @ms/telemetry-manager/lib/PairedEventBase */ "xPj7"), exports);
//# sourceMappingURL=PairedEventBase.js.map

/***/ }),

/***/ "DXcd":
/*!*************************************************************!*\
  !*** ./lib/extensibility/placeholder/PlaceholderContent.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Represents custom content that is rendered inside a placeholder on a SharePoint page.
 *
 * @remarks
 * This object is returned by {@link PlaceholderProvider.tryCreateContent}.
 * It provides access to a Document Object Model (DOM) element where the owner can render
 * its custom content.
 *
 * @public
 */
var PlaceholderContent = /** @class */ (function () {
    /**
     * @internal
     */
    function PlaceholderContent(parameters) {
        this._disposeHandler = undefined;
        this._isDisposed = false;
        this._placeholder = parameters.placeholder;
        this._disposeHandler = parameters.options ? parameters.options.onDispose : undefined;
        this._domElement = parameters.domElement;
    }
    Object.defineProperty(PlaceholderContent.prototype, "name", {
        /**
         * Identifies the placeholder that this content was added to.
         *
         * @remarks
         * Example: PlaceholderName.Top
         */
        get: function () {
            return this._placeholder.name;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PlaceholderContent.prototype, "domElement", {
        /**
         * The Document Object Model (DOM) element where the owner should render its custom content.
         *
         * @remarks
         * If the caller needs to be notified when the DOM element is disposed, use
         * the {@link IPlaceholderCreateContentOptions.onDispose} callback.
         */
        get: function () {
            return this._domElement;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Sets the placeholder of the content. This is used when the placeholders are modifying and the content may
     * hang from a new placeholder object.
     * @param placeholder - Placeholder that own this placeholder content.
     *
     * @internal
     */
    PlaceholderContent.prototype._setPlaceholder = function (placeholder) {
        this._placeholder = placeholder;
    };
    /**
     * Sets the options of the content. This is used when a bottom or top preAllocatedContent is created.
     * @param options - Options that own this placeholder content.
     *
     * @internal
     */
    PlaceholderContent.prototype._setOptions = function (options) {
        this._disposeHandler = options && options.onDispose;
    };
    /**
     * Disposes the PlaceholderContent object and removes its attached DOM element from the page.
     *
     * @remarks
     * This method can be called to immediately dispose the attached DOM element. Otherwise, it
     * will be disposed by the application when the containing placeholder is disposed. Calling dispose()
     * invokes the {@link IPlaceholderCreateContentOptions.onDispose} callback, removes the associated
     * DOM element from the page, and disposes the PlaceholderContent object.
     */
    PlaceholderContent.prototype.dispose = function () {
        if (!this._isDisposed) {
            if (this._disposeHandler) {
                try {
                    this._disposeHandler(this);
                }
                catch (error) {
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(PlaceholderContent._logSource, new Error("The onDispose API threw an exception for placeholder '" + this._placeholder.name + "'. Error information is '" + error.message + "'")); // tslint:disable-line:max-line-length
                }
            }
            this._placeholder.removePlaceholderContent(this);
            delete this._domElement;
            delete this._placeholder;
            delete this._disposeHandler;
        }
        this._isDisposed = true;
    };
    Object.defineProperty(PlaceholderContent.prototype, "isDisposed", {
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PlaceholderContent.prototype, "isVisible", {
        /**
         * Return true if this PlacholderContent object is visible.  If you create a placeholder
         * and the host page isn't displaying it, this will return false.
         */
        get: function () {
            return document.body.contains(this._domElement);
        },
        enumerable: true,
        configurable: true
    });
    PlaceholderContent._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('Placeholder');
    return PlaceholderContent;
}());
/* harmony default export */ __webpack_exports__["default"] = (PlaceholderContent);


/***/ }),

/***/ "DYAW":
/*!*********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/uri/SimpleUri.js ***!
  \*********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var sp_resource_path_1 = __webpack_require__(/*! @ms/sp-resource-path */ "97Ok");
exports.SimpleUri = sp_resource_path_1.SPResourcePath;
exports.UriFormat = sp_resource_path_1.SPResourcePathFormat;
exports.default = sp_resource_path_1.SPResourcePath;
//# sourceMappingURL=SimpleUri.js.map

/***/ }),

/***/ "FABR":
/*!**************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Link.styles.js ***!
  \**************************************************************************************************************************************************************************************************/
/*! exports provided: LinkStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinkStyles", function() { return LinkStyles; });
var LinkStyles = function (props) {
    var isDisabled = props.isDisabled;
    return {
        root: [
            !isDisabled && {
                selectors: {
                    '&:active, &:hover, &:active:hover': {
                        textDecoration: 'none'
                    }
                }
            }
        ]
    };
};
//# sourceMappingURL=Link.styles.js.map

/***/ }),

/***/ "FO0h":
/*!**************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-objects/0.10.2/node_modules/@ms/utilities-objects/lib/safeSerialize.js ***!
  \**************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
 * This is a function you can call to safely serialize anything to JSON.
 * The built-in JSON.stringify() throws an exception for circular references and can't handle
 * many built-ins such as HTMLElements and the global window object.
 */
function safeSerialize(obj) {
    var str;
    try {
        var seenObjects_1 = [];
        str = JSON.stringify(obj, function (key, value) {
            if (value === window) {
                return '[window]';
            }
            else if (value instanceof HTMLElement) {
                return '[HTMLElement]';
            }
            else if (typeof value === 'function') {
                return '[function]';
            }
            else if (typeof value === 'object') {
                if (value === null) {
                    return value;
                }
                else if (seenObjects_1.indexOf(value) === -1) {
                    seenObjects_1.push(value);
                    return value;
                }
                else {
                    return '[circular]';
                }
            }
            else {
                return value;
            }
        });
    }
    catch (err) {
        // Note: we make this be a JSON string, so that consumers
        // can always call JSON.parse.
        str = JSON.stringify('[object]');
    }
    return str;
}
exports.safeSerialize = safeSerialize;
//# sourceMappingURL=safeSerialize.js.map

/***/ }),

/***/ "FUc+":
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/PrimaryButton.styles.js ***!
  \***********************************************************************************************************************************************************************************************************/
/*! exports provided: PrimaryButtonStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrimaryButtonStyles", function() { return PrimaryButtonStyles; });
var PrimaryButtonStyles = function (props) {
    var theme = props.theme;
    if (!theme) {
        throw new Error('Theme is undefined or null.');
    }
    var palette = theme.palette;
    return {
        root: {
            border: 'none',
            backgroundColor: palette.themePrimary,
            color: palette.white
        },
        rootHovered: {
            backgroundColor: palette.themeDarkAlt
        },
        rootPressed: {
            backgroundColor: palette.themeDark
        },
        rootChecked: {
            backgroundColor: palette.themeDark
        }
    };
};
//# sourceMappingURL=PrimaryButton.styles.js.map

/***/ }),

/***/ "FmHR":
/*!**********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-guid/0.8.3/node_modules/@ms/utilities-guid/lib/Guid.js ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:no-bitwise
Object.defineProperty(exports, "__esModule", { value: true });
function generateUuidPart(length) {
    var str = '';
    while (str.length < length) {
        var num = Math.random() * 16;
        num = num | 0; // clear decimal
        str += num.toString(16);
    }
    return str;
}
/**
 * @public
 */
exports.Empty = '00000000-0000-0000-0000-000000000000';
/**
 * Return a v4 UUID as specified by RFC 4122 http://tools.ietf.org/html/rfc4122
 *
 * @public
 */
function generate() {
    var parts = [];
    parts.push(generateUuidPart(8));
    parts.push(generateUuidPart(4));
    // first digit must be 4 since we are using pseudorandom numbers
    var timeHighAndVersion = '4' + generateUuidPart(3);
    parts.push(timeHighAndVersion);
    // first digit must have first two bits set to 10
    var clockSeqHiAndReserved = generateUuidPart(4);
    // ClockSeqHiAndReserved is a base-16 string.
    var intVal = parseInt(clockSeqHiAndReserved[0], 16);
    intVal = intVal & 3; // clear out first two bits
    intVal = intVal | 8; // set first bit to 1
    clockSeqHiAndReserved = intVal.toString(16) + clockSeqHiAndReserved.substr(1);
    parts.push(clockSeqHiAndReserved);
    parts.push(generateUuidPart(12));
    return parts.join('-');
}
exports.generate = generate;
/**
 * Normalizes a GUID to lowercase. Returns '' if guid is not given.
 * @param includeBrackets - if true, add or keep brackets; if false, strip brackets
 *
 * @public
 */
function normalizeLower(guid, includeBrackets) {
    if (includeBrackets === void 0) { includeBrackets = false; }
    return guid ? _normalizeBrackets(guid.toLowerCase(), includeBrackets) : '';
}
exports.normalizeLower = normalizeLower;
/**
 * Normalizes a GUID to uppercase. Returns '' if guid is not given.
 * @param includeBrackets - if true, add or keep brackets; if false, strip brackets
 *
 * @public
 */
function normalizeUpper(guid, includeBrackets) {
    if (includeBrackets === void 0) { includeBrackets = false; }
    return guid ? _normalizeBrackets(guid.toUpperCase(), includeBrackets) : '';
}
exports.normalizeUpper = normalizeUpper;
/**
 * Normalizes the dashes in a GUID. Returns '' if the input is null, undefined, or does not contain
 * 32 hexadecimal characters.
 * @param guid - The GUID
 * @param includeBrackets - if true, output will contain brackets; if false, output will not
 *
 * @public
 */
function normalizeDashes(guid, includeBrackets) {
    if (includeBrackets === void 0) { includeBrackets = false; }
    if (guid) {
        var parsed = guid.replace(/[^A-Fa-f0-9]/g, '');
        if (parsed.length === 32) {
            return _normalizeBrackets(parsed.slice(0, 8) + "-" + parsed.slice(8, 12) + "-" + parsed.slice(12, 16) + "-" + parsed.slice(16, 20) + "-" + parsed.slice(20), includeBrackets);
        }
    }
    return '';
}
exports.normalizeDashes = normalizeDashes;
function _normalizeBrackets(guid, includeBrackets) {
    var match = guid.match(/^\{(.*)\}$/);
    if (match) {
        return includeBrackets ? match[0] : match[1];
    }
    return includeBrackets ? '{' + guid + '}' : guid;
}
//# sourceMappingURL=Guid.js.map

/***/ }),

/***/ "G61I":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/events/CaughtError.event.js ***!
  \*************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var SingleEventBase_1 = __webpack_require__(/*! ../SingleEventBase */ "8WDM");
var Trace_event_1 = __webpack_require__(/*! ./Trace.event */ "Crvl");
exports.CaughtError = SingleEventBase_1.createSingleEvent({
    eventName: 'CaughtError,Trace,',
    shortEventName: 'CaughtError',
    critical: true,
    requiresParent: false
}, {
    stack: 1 /* String */,
    extraData: 4 /* Object */
}, Trace_event_1.Trace);
//# sourceMappingURL=CaughtError.event.js.map

/***/ }),

/***/ "G7sL":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/encoding/UriEncoding.js ***!
  \****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/encoding/UriEncoding.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.UriEncoding;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "Gnpm":
/*!*********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-objects/0.10.2/node_modules/@ms/utilities-objects/lib/deepCopy.js ***!
  \*********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
 * Returns a copy of the specified object by deeply cloning all of its properties.
 */
function deepCopy(object) {
    var refsCopied = [];
    function copyRecurse(obj) {
        var result = null;
        if (obj) {
            if (Array.isArray(obj)) {
                // @ts-ignore
                result = [];
            }
            else {
                // create clone of the object with same prototype chain
                result = Object.create(Object.getPrototypeOf(obj));
            }
            // iterate over all the properties in the object
            Object.keys(obj).forEach(function (key) {
                // recursively copy the object's properties if the property is an object
                var value = obj[key];
                if (typeof value === 'object') {
                    // @ts-ignore
                    if (refsCopied.indexOf(value) !== -1) {
                        throw new Error("Cannot perform DeepCopy() because a circular reference was encountered, object: " + obj + ", property: " + key);
                    }
                    // @ts-ignore
                    refsCopied.push(value);
                    // @ts-ignore
                    result[key] = copyRecurse(value);
                    refsCopied.pop();
                }
                else {
                    // @ts-ignore
                    result[key] = value;
                }
            });
        }
        return result;
    }
    return copyRecurse(object);
}
exports.deepCopy = deepCopy;
//# sourceMappingURL=deepCopy.js.map

/***/ }),

/***/ "H2L0":
/*!************************************************!*\
  !*** ./lib/pageChrome/SPPageChrome.module.css ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/cjs.js!../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/postcss-loader/3.0.0/node_modules/postcss-loader/src??postcss!./SPPageChrome.module.css */ "VkOs");
var loader = __webpack_require__(/*! @microsoft/load-themed-styles */ "jOlS");

if(typeof content === "string") content = [[module.i, content]];

// add the styles to the DOM
for (var i = 0; i < content.length; i++) loader.loadStyles(content[i][1], true);

if(content.locals) module.exports = content.locals;

/***/ }),

/***/ "H4yp":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/ThemeProvider.js ***!
  \*****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var RgbaColor_1 = __webpack_require__(/*! ./RgbaColor */ "w/WL");
var ThemeCache_1 = __webpack_require__(/*! ./ThemeCache */ "pgz/");
var Promise_1 = __webpack_require__(/*! ../async/Promise */ "MS/P");
var Engagement_event_1 = __webpack_require__(/*! ../logging/events/Engagement.event */ "yEhF");
var Qos_event_1 = __webpack_require__(/*! ../logging/events/Qos.event */ "/TBc");
/**
 * Provides theme data, either from the local cache or from the server.
 */
var ThemeProvider = /** @class */ (function () {
    /**
     * Constructs a ThemeProvider which acts like the provided loadData function but with caching.
     * @param {() => Promise<IThemeData>} loadData Used to load data on a cache miss.
     */
    function ThemeProvider(loadData) {
        this._loadData = loadData;
    }
    ThemeProvider.getBackgroundUrl = function (data) {
        if (data) {
            return ThemeProvider._makeCssUrl(data.backgroundImageUri);
        }
        else {
            return 'none';
        }
    };
    /**
     * Given a URL, returns a string value which can be safely used as a
     * background-image value in a CSS rule. If the url is falsey, this
     * returns "none" to specify no background-image.
     * @param {string} url The URL of a background image.
     */
    ThemeProvider._makeCssUrl = function (url) {
        var cssUrlValue = "none";
        if (url) {
            cssUrlValue = 'url("' +
                ThemeProvider._escapeQuotesAndParentheses(url) +
                '")';
        }
        return cssUrlValue;
    };
    /**
     * Escapes single- and double-quotes along with parentheses so that the
     * resulting string is safe to use in a CSS background-image: url()
     * @param {string} str The string to escape.
     */
    ThemeProvider._escapeQuotesAndParentheses = function (str) {
        var replacements = { "'": "%27", '"': "%22", "(": "%28", ")": "%29" };
        var result = null;
        if (str != null) {
            result = str.replace(/(['"\(\)])/gm, function (match, capture) {
                return replacements[capture];
            });
        }
        return result;
    };
    /**
     * Loads the theme data and returns a map from theme tokens to replacement values.
     * Suitable for use with loadTheme in load-themed-styles.
     * @param {string} cacheToken Cache token used to validate cached data.
     * @param {boolean} forceUpdate Whether to force fresh data to be loaded and cached.
     */
    ThemeProvider.prototype.loadThemeTokenMap = function (cacheToken, forceUpdate) {
        return this.loadThemeData(cacheToken, forceUpdate).then(function (themeData) {
            var themeValues;
            if (themeData && themeData.palette) {
                themeValues = {};
                var palette = themeData.palette;
                for (var colorSlot in palette) {
                    var rgbaValue = palette[colorSlot];
                    themeValues[colorSlot] = rgbaValue ? RgbaColor_1.default.toHtmlString(rgbaValue) : null;
                }
                themeValues["backgroundImageUri"] =
                    ThemeProvider._makeCssUrl(themeData.backgroundImageUri);
            }
            return themeValues;
        }, function (error) { return null; }); // on error, return null
    };
    /**
     * Loads the theme data from the cache or via the a loadData method.
     * @param {string} cacheToken Cache token used to validate cached data.
     * @param {boolean} forceUpdate Whether to force fresh data to be loaded and cached.
     */
    ThemeProvider.prototype.loadThemeData = function (cacheToken, forceUpdate) {
        if (!forceUpdate && this._dataPromise) {
            return this._dataPromise;
        }
        var _this = this;
        var failureResultCode = null;
        var failureResultType = Qos_event_1.ResultTypeEnum.Failure;
        this._dataPromise = Qos_event_1.Qos.instrumentPromise(
        /*startSchema*/ { name: "ThemeProvider.LoadData" }, 
        /*createPromise*/ function () { return new Promise_1.default(function loadDataOnExecute(complete, error) {
            var previousData = null;
            if (!forceUpdate) {
                // Checks if we have valid cached data before returning it.
                previousData = ThemeCache_1.default.getCachedTheme(cacheToken);
            }
            // If we have previous data and an update is not forced, use that data.
            if (previousData) {
                Engagement_event_1.Engagement.logData({ name: "ThemeProvider.DataFromCache" });
                complete(previousData);
            }
            else {
                if (forceUpdate) {
                    Engagement_event_1.Engagement.logData({ name: "ThemeProvider.ForceUpdateData" });
                }
                Engagement_event_1.Engagement.logData({ name: "ThemeProvider.DataFromServer" });
                // Get updated data. Might result in a server call.
                _this._loadData(forceUpdate).done(function onComplete(themeData) {
                    if (themeData) {
                        if (themeData.cacheToken) {
                            ThemeCache_1.default.updateThemeCache(themeData, cacheToken);
                        }
                        complete(themeData);
                    }
                    else {
                        failureResultCode = "NoData";
                        if (error) {
                            error("No model returned");
                        }
                    }
                }, function onError(err) {
                    if (Promise_1.default.isCanceled(error)) {
                        failureResultCode = "Canceled";
                        failureResultType = Qos_event_1.ResultTypeEnum.ExpectedFailure;
                    }
                    else {
                        failureResultCode = "ServerLoadFailure";
                    }
                    if (error) {
                        error(err);
                    }
                });
            }
        }); }, 
        /*getCompleteSchema*/ null, 
        /*getErrorSchema*/ function getErrorSchema(error) {
            if (Promise_1.default.isCanceled(error)) {
                failureResultType = Qos_event_1.ResultTypeEnum.ExpectedFailure;
                failureResultCode = "Canceled";
            }
            return {
                resultType: failureResultType,
                resultCode: failureResultCode || "Other",
                error: error
            };
        });
        return this._dataPromise;
    };
    return ThemeProvider;
}());
exports.default = ThemeProvider;
//# sourceMappingURL=ThemeProvider.js.map

/***/ }),

/***/ "H6KY":
/*!***********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/rumone/RUMOneLogger.js ***!
  \***********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/logging/rumone/RUMOneLogger.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.RumOneLogger;
module.exports.RUMOneLogger = pkg.RumOneLogger;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "HYQE":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/Shades.js ***!
  \**********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var RgbaColor_1 = __webpack_require__(/*! ./RgbaColor */ "w/WL");
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 = exports.Shade || (exports.Shade = {}));
/**
 * Returns true if the argument is a valid Shade value
 * @param {Shade} shade The Shade value to validate.
 */
function isValidShade(shade) {
    return typeof shade === 'number' && shade >= Shade.Unshaded && shade <= Shade.Shade8;
}
exports.isValidShade = isValidShade;
function _isBlack(color) {
    return color.R === 0 && color.G === 0 && color.B === 0;
}
function _isWhite(color) {
    return color.R === 255 && color.G === 255 && color.B === 255;
}
function _darken(hsv, factor) {
    return {
        h: hsv.h,
        s: hsv.s,
        v: hsv.v - hsv.v * factor
    };
}
function _lighten(hsv, factor) {
    return {
        h: hsv.h,
        s: hsv.s - hsv.s * factor,
        v: hsv.v + (100 - hsv.v) * factor
    };
}
/**
 * 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 {IColor} color The base color whose shade is to be computed
 * @param {Shade} shade The shade of the base color to compute
 * @param {Boolean} isInverted Default false. Whether the given theme is inverted (reverse strongen/soften logic)
 */
function getShade(color, shade, isInverted) {
    if (!color || shade === Shade.Unshaded || !isValidShade(shade)) {
        return color;
    }
    var _soften = _lighten;
    var _strongen = _darken;
    if (isInverted) {
        _soften = _darken;
        _strongen = _lighten;
    }
    var hsv = rgb2hsv(color);
    var hsl = hsv2hsl(hsv);
    var tableIndex = shade - 1;
    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 hsv2rgb(hsv);
}
exports.getShade = getShade;
function rgb2hsv(rgb) {
    var h = NaN;
    var s;
    var v;
    var R = rgb.R, G = rgb.G, B = rgb.B;
    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;
    }
    s = Math.round((max === 0 ? 0 : delta / max) * 100);
    v = Math.round((max / 255) * 100);
    return { h: h, s: s, v: v };
}
function hsv2hsl(hsv) {
    var h = hsv.h, s = hsv.s, v = hsv.v;
    s /= 100;
    v /= 100;
    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 };
}
function hsv2rgb(hsv) {
    var h = hsv.h, s = hsv.s, v = hsv.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 RgbaColor_1.default.fromRgba(Math.round(255 * (rgb[0] + m)), Math.round(255 * (rgb[1] + m)), Math.round(255 * (rgb[2] + m)));
}
//# sourceMappingURL=Shades.js.map

/***/ }),

/***/ "I6O9":
/*!***************************************!*\
  !*** external "@microsoft/sp-loader" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_I6O9__;

/***/ }),

/***/ "IGvF":
/*!******************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/MDL2Theme.js ***!
  \******************************************************************************************************************************************************************************************/
/*! exports provided: MDL2Palette, MDL2Effects, MDL2FontStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDL2Palette", function() { return MDL2Palette; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDL2Effects", function() { return MDL2Effects; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDL2FontStyles", function() { return MDL2FontStyles; });
var MDL2Palette = {
    neutralDark: '#212121',
    neutralPrimary: '#333333',
    neutralPrimaryAlt: '#3c3c3c',
    neutralSecondary: '#666666',
    neutralSecondaryAlt: '#767676',
    neutralTertiary: '#a6a6a6',
    neutralTertiaryAlt: '#c8c8c8',
    neutralQuaternary: '#d0d0d0',
    neutralQuaternaryAlt: '#dadada',
    neutralLight: '#eaeaea',
    neutralLighter: '#f4f4f4',
    neutralLighterAlt: '#f8f8f8',
    // Shared Colors
    red: '#e81123',
    redDark: '#a80000'
};
var MDL2Effects = {
    elevation4: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation8: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation16: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation64: '0 0 5px 0 rgba(0,0,0,.4)',
    roundedCorner2: '0px'
};
var MDL2FontStyles = {
    tiny: {
        fontSize: 10,
        fontWeight: 600
    },
    xSmall: {
        fontSize: 11,
        fontWeight: 400
    },
    small: {
        fontSize: 12,
        fontWeight: 400
    },
    smallPlus: {
        fontSize: 13,
        fontWeight: 400
    },
    medium: {
        fontSize: 14,
        fontWeight: 400
    },
    mediumPlus: {
        fontSize: 15,
        fontWeight: 400
    },
    large: {
        fontSize: 17,
        fontWeight: 300
    },
    xLarge: {
        fontSize: 21,
        fontWeight: 100
    },
    xLargePlus: {
        fontSize: 21,
        fontWeight: 100
    },
    xxLarge: {
        fontSize: 28,
        fontWeight: 100
    },
    xxLargePlus: {
        fontSize: 28,
        fontWeight: 100
    },
    superLarge: {
        fontSize: 42,
        fontWeight: 100
    },
    mega: {
        fontSize: 72,
        fontWeight: 100
    }
};
//# sourceMappingURL=MDL2Theme.js.map

/***/ }),

/***/ "IPei":
/*!******************************************************************!*\
  !*** ./lib/extensibility/ApplicationCustomizerContextFactory.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ApplicationCustomizerContext */ "L9BA");
/* harmony import */ var _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./customAction/CustomActionLocations */ "4QmI");




var ApplicationCustomizerContextFactory = /** @class */ (function () {
    function ApplicationCustomizerContextFactory(serviceScope) {
        this.applicationCustomizerTopHeight = 'preAllocatedApplicationCustomizerTopHeight';
        this.applicationCustomizerBottomHeight = 'preAllocatedApplicationCustomizerBottomHeight';
        this._cache = {};
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._serviceScope = serviceScope;
    }
    ApplicationCustomizerContextFactory.prototype.initialize = function (customActions) {
        for (var _i = 0, customActions_1 = customActions; _i < customActions_1.length; _i++) {
            var customAction = customActions_1[_i];
            if (customAction.id) {
                var id = customAction.id.toString();
                if (id && customAction.location === _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_3__["default"].APPLICATION_CUSTOMIZER) {
                    if (!this._cache[id] || (this._cache[id] && this._cache[id].isDisposed)) {
                        this._cache[id] = this.createApplicationCustomizerContext(customAction);
                    }
                }
            }
        }
    };
    ApplicationCustomizerContextFactory.prototype.getApplicationCustomizerContext = function (customAction) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(customAction, 'customAction');
        if (customAction.id) {
            var id = customAction.id.toString();
            if (id) {
                if (this._cache[id] && !this._cache[id].isDisposed) {
                    return this._cache[id];
                }
                var appCustomizerContext = this.createApplicationCustomizerContext(customAction);
                this._cache[id] = appCustomizerContext;
                return appCustomizerContext;
            }
        }
        return this.createApplicationCustomizerContext(customAction);
    };
    ApplicationCustomizerContextFactory.prototype.clear = function () {
        this._cache = {};
    };
    ApplicationCustomizerContextFactory.prototype.createApplicationCustomizerContext = function (customAction, extensionContextParameters, includeAllParams) {
        if (extensionContextParameters === void 0) { extensionContextParameters = {}; }
        if (includeAllParams === void 0) { includeAllParams = true; }
        var componentId = customAction.clientSideComponentId.toString();
        var topHeight = 0;
        var bottomHeight = 0;
        if (customAction.hostProperties) {
            topHeight = parseInt(JSON.parse(customAction.hostProperties)[this.applicationCustomizerTopHeight], 10)
                || 0;
            bottomHeight = parseInt(JSON.parse(customAction.hostProperties)[this.applicationCustomizerBottomHeight], 10)
                || 0;
        }
        var applicationCustomizerContextParameters = {
            sequence: customAction.sequence !== undefined ? customAction.sequence : 65535,
            preAllocatedApplicationCustomizerTopHeight: topHeight,
            preAllocatedApplicationCustomizerBottomHeight: bottomHeight
        };
        var applicationCustomizerContext;
        if (includeAllParams) {
            var manifest = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__["SPComponentLoader"].tryGetManifestById(componentId);
            if (!manifest) {
                var error = new Error("Custom action with component id \"" + componentId + "\" didn't have a manifest.");
                throw error;
            }
            var instanceId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].newGuid().toString();
            var loggingTag = "Extension." + manifest.id + "." + instanceId;
            applicationCustomizerContext = new _ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_2__["default"]({ manifest: manifest,
                parentServiceScope: this._serviceScope,
                instanceId: instanceId,
                loggingTag: loggingTag }, applicationCustomizerContextParameters);
        }
        else {
            applicationCustomizerContext = new _ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_2__["default"](extensionContextParameters, applicationCustomizerContextParameters);
        }
        return applicationCustomizerContext;
    };
    return ApplicationCustomizerContextFactory;
}());
/* harmony default export */ __webpack_exports__["default"] = (ApplicationCustomizerContextFactory);


/***/ }),

/***/ "IWZz":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Pivot.styles.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: PivotStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PivotStyles", function() { return PivotStyles; });
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");

var PivotStyles = function (props) {
    var theme = props.theme, rootIsTabs = props.rootIsTabs;
    var palette = theme.palette;
    return {
        link: [
            !rootIsTabs && {
                height: 40,
                lineHeight: 40,
                selectors: {
                    ':hover': {
                        backgroundColor: 'transparent',
                        color: palette.neutralDark
                    },
                    ':active': {
                        backgroundColor: 'transparent'
                    }
                }
            }
        ],
        linkIsSelected: [
            !rootIsTabs && {
                height: 40,
                lineHeight: 40,
                selectors: {
                    ':hover': {
                        backgroundColor: 'transparent'
                    },
                    ':active': {
                        backgroundColor: 'transparent'
                    },
                    ':before': {
                        transition: "left " + office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction2 + ",\n                        right " + office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction2
                    },
                    ':hover::before': {
                        left: 8,
                        right: 8
                    }
                }
            }
        ]
    };
};
//# sourceMappingURL=Pivot.styles.js.map

/***/ }),

/***/ "IveV":
/*!**********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/models/store/BaseDataStore.js ***!
  \**********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var DataStoreCachingType_1 = __webpack_require__(/*! ./DataStoreCachingType */ "y91V");
// DataStore class is used for transparent caching of data in memory and/or browser storage
// - Parameter defaultCachingType defines whether you want to use browser storage for all operations
// and which type of storage - session or local
// - Parameter dataStoreKey is used to prefix every key in browser storage. Actual key for browser storage
// will be dataStoreKey + key used in setValue method.
// - If DataStore is instantiated with some type of browser caching enabled - it will test if browser storage
// is available and use it. If it's not it will fall back to in-memory cache.
// - If DataStore is instantiated from two different places with same dataStoreKey and some type of
// browser storage caching, the memory storage will be shared as well as browser storage.
var DataStore = /** @class */ (function () {
    function DataStore(dataStoreKey, defaultCachingType) {
        if (defaultCachingType === void 0) { defaultCachingType = DataStoreCachingType_1.default.none; }
        DataStore.init();
        this.dataStoreKey = dataStoreKey;
        this.defaultCachingType = defaultCachingType;
        if (defaultCachingType === DataStoreCachingType_1.default.none) {
            this.dataStore = {};
        }
        else {
            var store = DataStore._dataStore[this.dataStoreKey];
            if (store === undefined) {
                DataStore._dataStore[this.dataStoreKey] = {};
            }
            this.dataStore = DataStore._dataStore[this.dataStoreKey];
        }
    }
    DataStore.hasStorageType = function (storageType) {
        DataStore.init();
        switch (storageType) {
            case DataStoreCachingType_1.default.none: return true;
            case DataStoreCachingType_1.default.sharedMemory: return true;
            case DataStoreCachingType_1.default.session: return !!DataStore._sessionStorage;
            case DataStoreCachingType_1.default.local: return !!DataStore._localStorage;
        }
        return false;
    };
    DataStore.init = function () {
        if (DataStore._initialized) {
            return;
        }
        // Need a try/catch since window.localStorage can throw.
        try {
            if ('localStorage' in window && window.localStorage && DataStore.testStorage(window.localStorage)) {
                DataStore._localStorage = window.localStorage;
            }
        }
        catch (exUsingLocalStorage) {
            // do nothing
        }
        try {
            if ('sessionStorage' in window && window.sessionStorage && DataStore.testStorage(window.sessionStorage)) {
                DataStore._sessionStorage = window.sessionStorage;
            }
        }
        catch (exUsingSessionStorage) {
            // do nothing
        }
        // Fallback logic
        if (DataStore._localStorage == null) {
            DataStore._localStorage = DataStore._sessionStorage;
        }
        DataStore._initialized = true;
    };
    /** Need to check whether the value in localStorage is of the correct type.
     * In Private Browsing in Safari, for example, localStorage is accessible,
     * but all of the non-built-in properties return undefined, and setting
     * such a property causes an exception.
     */
    DataStore.testStorage = function (storage) {
        var _testKey = "BrowserStorageTest";
        var _testValue = "1";
        var result = false;
        try {
            storage.setItem(_testKey, _testValue);
            if (storage.getItem(_testKey) === _testValue) {
                result = true;
            }
            storage.removeItem(_testKey);
        }
        catch (e) { /* no-op, return false */ }
        return result;
    };
    DataStore.prototype.setValue = function (key, value, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        this.dataStore[key] = value;
        var storage = this.getStorage(cachingTypeOverride);
        if (storage) {
            try {
                var objectsFound = [];
                var s = JSON.stringify(value, function (key, value) {
                    if (typeof value === 'object' && value !== null) {
                        if (objectsFound.indexOf(value) !== -1) {
                            // discard the key if circular dependency was found
                            return;
                        }
                        // Otherwise store value in the cache
                        objectsFound.push(value);
                    }
                    return value;
                });
                // empty cache
                objectsFound = null;
                storage.setItem(this.dataStoreKey + key, s);
            }
            catch (e) {
                // do nothing
            }
        }
    };
    DataStore.prototype.getValue = function (key, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        var value = this.dataStore[key];
        var storage = this.getStorage(cachingTypeOverride);
        if (value === undefined && storage) {
            var s = storage.getItem(this.dataStoreKey + key);
            if (s) {
                try {
                    value = JSON.parse(s);
                    this.dataStore[key] = value;
                }
                catch (e) {
                    value = undefined;
                }
            }
        }
        return value;
    };
    DataStore.prototype.remove = function (key, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        var storage = this.getStorage(cachingTypeOverride);
        if (storage) {
            storage.removeItem(this.dataStoreKey + key);
        }
        delete this.dataStore[key];
    };
    DataStore.prototype.getStorage = function (cachingTypeOverride) {
        var cachingType = cachingTypeOverride ? cachingTypeOverride : this.defaultCachingType;
        switch (cachingType) {
            case DataStoreCachingType_1.default.none:
                return null;
            case DataStoreCachingType_1.default.sharedMemory:
                return null;
            case DataStoreCachingType_1.default.session:
                return DataStore._sessionStorage;
            case DataStoreCachingType_1.default.local:
                return DataStore._localStorage;
        }
        return null;
    };
    DataStore.prototype.normalizeKey = function (key) {
        return key && key.toLowerCase() || '';
    };
    DataStore._sessionStorage = null;
    DataStore._localStorage = null;
    DataStore._dataStore = {};
    DataStore._initialized = false;
    return DataStore;
}());
exports.default = DataStore;
//# sourceMappingURL=BaseDataStore.js.map

/***/ }),

/***/ "J5U9":
/*!******************************************************************!*\
  !*** ./lib/extensibility/customAction/ClientSideCustomAction.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__);




/**
 * Client-side custom action.
 */
var ClientSideCustomAction = /** @class */ (function () {
    function ClientSideCustomAction() {
    }
    /**
     * Try to create a custom action from the preloaded custom action data. If there is a failure
     * to create the action, log an error and return undefined. We do not want to cause application
     * loading failures in case of custom action creation failures.
     *
     * @internal
     */
    ClientSideCustomAction._tryCreateFromPreloadedCustomAction = function (customAction) {
        var typedCustomAction = undefined;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('ClientSideCustomActions.CreateFromPreloadedCustomAction');
        try {
            typedCustomAction = new ClientSideCustomAction();
            var componentId = customAction.clientSideComponentId;
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(componentId, 'customAction.clientSideComponentId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(customAction.location, 'customAction.location');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(componentId), 'customAction.clientSideComponentId as Guid');
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].tryGetManifestById(componentId)) {
                var error = new Error("Custom action with component id \"" + componentId + "\" didn't have a manifest.");
                qosMonitor.writeUnexpectedFailure('ManifestNotFound', error, { customAction: componentId });
                throw error;
            }
            typedCustomAction.title = customAction.title;
            typedCustomAction.location = customAction.location;
            typedCustomAction.clientSideComponentId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(componentId);
            typedCustomAction.clientSideComponentProperties = customAction.clientSideComponentProperties;
            typedCustomAction.registrationType = customAction.registrationType;
            typedCustomAction.registrationId = customAction.registrationId;
            typedCustomAction.sequence = customAction.sequence;
            typedCustomAction.hostProperties = customAction.hostProperties;
            typedCustomAction.requireSiteAdministrator = customAction.requireSiteAdministrator;
            typedCustomAction.id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(customAction.id);
            var rights = customAction.rights;
            if (rights && rights.High !== undefined && rights.Low !== undefined) {
                typedCustomAction.rights = new _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__["SPPermission"](rights);
            }
            else {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(ClientSideCustomAction._logSource, "The rights object has invalid format. One of High or Low fields cannot be undefined. Object value is '" + JSON.stringify(rights)); // tslint:disable-line:max-line-length
            }
            qosMonitor.writeSuccess({
                customAction: typedCustomAction.tag
            });
            return typedCustomAction;
        }
        catch (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ClientSideCustomAction._logSource, new Error("Failed to create client-side custom action. Error: " + error.message));
            qosMonitor.writeUnexpectedFailure('UnhandledCreateError', error, {
                customAction: customAction.clientSideComponentId
            });
            return undefined;
        }
    };
    /**
     * Try create custom action from query string debug data
     */
    ClientSideCustomAction._tryCreateFromDebugData = function (location, clientSideComponentId, clientSideComponentProperties, sequence, hostProperties) {
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(clientSideComponentId, 'clientSideComponentId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(location, 'location');
            var customAction = new ClientSideCustomAction();
            customAction.location = location;
            customAction.clientSideComponentId = clientSideComponentId;
            customAction.clientSideComponentProperties = clientSideComponentProperties;
            customAction.sequence = sequence;
            customAction.hostProperties = hostProperties;
            return customAction;
        }
        catch (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ClientSideCustomAction._logSource, new Error("Failed to create client-side custom action. Error: " + error.message));
            return undefined;
        }
    };
    Object.defineProperty(ClientSideCustomAction.prototype, "tag", {
        /**
         * Returns a tag that should be used for logging and telemetry purposes.
         */
        get: function () {
            return this.location + "." + this.clientSideComponentId.toString();
        },
        enumerable: true,
        configurable: true
    });
    ClientSideCustomAction._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('ClientSideCustomAction');
    return ClientSideCustomAction;
}());
/* harmony default export */ __webpack_exports__["default"] = (ClientSideCustomAction);


/***/ }),

/***/ "JwFY":
/*!******************************************************!*\
  !*** ./lib/navigator/OnBeforeNavigationEventName.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
// Copyright (c) Microsoft. All rights reserved.


/**
 * Arguments for a pre in-place navigation event.
 *
 * @internal
 */
var OnBeforeNavigationEventName = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OnBeforeNavigationEventName, _super);
    /**
     * Initializes a new instance of the OnBeforeNavigationEventName class
     * @param fromAppId - Component id of the application we're navigating from
     * @param toAppId - Component id of the application we're navigating to
     */
    function OnBeforeNavigationEventName(fromAppId, toAppId) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(fromAppId, 'fromAppId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(toAppId, 'toAppId');
        _this = _super.call(this) || this;
        _this.fromAppId = fromAppId;
        _this.toAppId = toAppId;
        return _this;
    }
    return OnBeforeNavigationEventName;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["SPEventArgs"]));
/* harmony default export */ __webpack_exports__["default"] = (OnBeforeNavigationEventName);


/***/ }),

/***/ "KdXK":
/*!****************************************!*\
  !*** ./lib/pageChrome/SPPageChrome.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/Flights */ "w4+A");
/* harmony import */ var _SPThemeProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SPThemeProvider */ "6GSH");
/* harmony import */ var _error_SPGlobalErrorHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/SPGlobalErrorHandler */ "1/3/");
/* harmony import */ var _extensibility_DialogManagerConfiguration__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../extensibility/DialogManagerConfiguration */ "7Cl3");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _SPPageChrome_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SPPageChrome.module.scss */ "LODL");








var SPPageChrome = /** @class */ (function () {
    function SPPageChrome(serviceScope, parentChrome) {
        this._isDisposed = false;
        this._masterChrome = parentChrome;
        this._createPageChrome();
        // The default configuration for dialog manager. This may be changed by the application later.
        // Note: This will not run if the application does not own the page chrome and hence must be called
        // by the application if they choose to use the dialog manager.
        _extensibility_DialogManagerConfiguration__WEBPACK_IMPORTED_MODULE_5__["default"].instance.initialize(this.dialogContainerDiv);
        this._spThemeProvider = new _SPThemeProvider__WEBPACK_IMPORTED_MODULE_3__["default"](serviceScope);
    }
    SPPageChrome.prototype.changeSuiteNavHeight = function (pixels) {
        var top = parseInt(pixels, 10) + 'px';
        this.suiteNavDiv.style.height = top;
    };
    Object.defineProperty(SPPageChrome.prototype, "themeProvider", {
        get: function () {
            return this._spThemeProvider;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Shows the page chrome in the current document.
     */
    SPPageChrome.prototype.show = function () {
        if (!this._isDisposed) {
            if (_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNewChromeSequence()) {
                this._masterChrome.show();
                if (!_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNextGenSPA) {
                    this._masterChrome.chromeDiv.appendChild(this.appAndPropertyPaneDiv);
                    this._masterChrome.chromeDiv.appendChild(this.dialogContainerDiv);
                }
            }
            else {
                document.body.appendChild(this._chromeDiv);
            }
        }
    };
    /**
     * Hides the page chrome in the current document.
     */
    SPPageChrome.prototype.hide = function () {
        if (!this._isDisposed) {
            if (_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNewChromeSequence()) {
                if (!_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNextGenSPA) {
                    this.appAndPropertyPaneDiv = this._masterChrome.chromeDiv.removeChild(this.appAndPropertyPaneDiv);
                    this.dialogContainerDiv = this._masterChrome.chromeDiv.removeChild(this.dialogContainerDiv);
                }
            }
            else {
                this._chromeDiv = document.body.removeChild(this._chromeDiv);
            }
        }
    };
    /**
     * Disposes the Chrome
     */
    SPPageChrome.prototype.dispose = function () {
        if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_1__["_SPLoaderFlights"]._useNewBootSequence() && !this._isDisposed) {
            delete this.appDiv;
            delete this.propertyPaneContainerDiv;
            if (this.appAndPropertyPaneDiv) {
                delete this.appAndPropertyPaneDiv;
            }
            delete this.dialogContainerDiv;
            if (!_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNewChromeSequence()) {
                delete this.suiteNavDiv;
                delete this._chromeDiv;
            }
        }
        this._isDisposed = true;
    };
    Object.defineProperty(SPPageChrome.prototype, "isDisposed", {
        /**
         * Returns true if the object has already been disposed, otherwise false.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Creates div elements that are used to render the Standard Page Chrome for
     * client-side applications. The structure of the Page Chrome is:
     *
     * SPPageChrome - Parent div for client-side applications
     * -SuiteNav - O365 SuiteNav
     * --App - Div Element where the application will be rendered.
     */
    SPPageChrome.prototype._createPageChrome = function () {
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_6__["_PerformanceLogger"].devMark('SPPageChrome.createPageChrome');
        if (_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNewChromeSequence()) {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._masterChrome, 'masterChrome');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotDisposed(this._masterChrome, 'masterChrome');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._masterChrome.chromeDiv, 'chromeDiv');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._masterChrome.suiteNavDiv, 'suiteNavDiv');
            this.suiteNavDiv = this._masterChrome.suiteNavDiv;
        }
        else {
            // Page body
            document.body.className = 'ms-font-m';
            // Page Chrome div
            this._chromeDiv = document.createElement('div');
            this._chromeDiv.setAttribute('class', 'SPPageChrome');
            // SuiteNav div
            this.suiteNavDiv = document.createElement('div');
            this.suiteNavDiv.setAttribute('id', 'SuiteNavPlaceHolder');
            this._chromeDiv.appendChild(this.suiteNavDiv);
        }
        // Application div
        this.appDiv = document.createElement('div');
        this.appDiv.setAttribute('class', "SPPageChrome-app");
        this.appDiv.setAttribute('id', 'spPageChromeAppDiv');
        this.appDiv.setAttribute('data-sp-feature-tag', 'Page Chrome');
        this.appDiv.setAttribute('data-sp-feature-instance-id', '_Page Chrome');
        this.appDiv.setAttribute('data-sp-a11y-navigatebyhierarchy', 'true');
        // PropertyPaneContainer div
        this.propertyPaneContainerDiv = document.createElement('div');
        this.propertyPaneContainerDiv.setAttribute('class', "spPropertyPaneContainer " + _SPPageChrome_module_scss__WEBPACK_IMPORTED_MODULE_7__["default"].spPageContentTransition);
        this.propertyPaneContainerDiv.setAttribute('id', 'spPropertyPaneContainer');
        // Application and PropertyPane container div
        this.appAndPropertyPaneDiv = document.createElement('div');
        this.appAndPropertyPaneDiv.setAttribute('class', 'spAppAndPropertyPanelContainer');
        this.appAndPropertyPaneDiv.appendChild(this.appDiv);
        this.appAndPropertyPaneDiv.appendChild(this.propertyPaneContainerDiv);
        // Dialog Container Div
        this.dialogContainerDiv = document.createElement('div');
        this.dialogContainerDiv.setAttribute('id', 'spDialogContainerDiv');
        // Compose the page chrome
        if (!_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNewChromeSequence()) {
            this._chromeDiv.appendChild(this.appAndPropertyPaneDiv);
            this._chromeDiv.appendChild(this.dialogContainerDiv);
            if (!window.onerror) {
                window.onerror = _error_SPGlobalErrorHandler__WEBPACK_IMPORTED_MODULE_4__["default"].basicTracingHandler;
            }
        }
        else if (_common_Flights__WEBPACK_IMPORTED_MODULE_2__["Flights"].useNextGenSPA) {
            this._masterChrome.chromeDiv.appendChild(this.appAndPropertyPaneDiv);
            this._masterChrome.chromeDiv.appendChild(this.dialogContainerDiv);
        }
    };
    return SPPageChrome;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPPageChrome);


/***/ }),

/***/ "L9BA":
/*!***********************************************************!*\
  !*** ./lib/extensibility/ApplicationCustomizerContext.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-extension-base */ "ZFc5");
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./placeholder/PlaceholderProvider */ "/Kpt");
/* harmony import */ var _ApplicationAccessor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ApplicationAccessor */ "75qc");
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/Killswitches */ "dQCu");





/**
 * The component context for {@link BaseApplicationCustomizer}.
 *
 * @public
 */
var ApplicationCustomizerContext = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ApplicationCustomizerContext, _super);
    /**
     * @internal
     */
    function ApplicationCustomizerContext(extensionContextParameters, applicationCustomizerContextParameters) {
        var _this = _super.call(this, extensionContextParameters) || this;
        if (!_common_Killswitches__WEBPACK_IMPORTED_MODULE_4__["Killswitches"].isPreallocatedPlaceholdersforApplicationCustomizersKSActive()) {
            _this.serviceScope.finish();
            _this._componentTag = "Extension." +
                (extensionContextParameters.manifest.alias + ".") +
                (extensionContextParameters.manifest.id + ".") +
                ((extensionContextParameters.manifest.isInternal ? 'internal' : 'external') + ".") +
                ("" + extensionContextParameters.instanceId);
            _this._placeholderProvider =
                new _placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_2__["default"](_this.serviceScope, applicationCustomizerContextParameters, _this._componentTag);
        }
        else {
            _this._placeholderProvider =
                new _placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_2__["default"](_this.serviceScope, { sequence: applicationCustomizerContextParameters.sequence });
        }
        _this._applicationAccessor = new _ApplicationAccessor__WEBPACK_IMPORTED_MODULE_3__["default"](_this.serviceScope);
        return _this;
    }
    Object.defineProperty(ApplicationCustomizerContext.prototype, "placeholderProvider", {
        /**
         * Exposes a collection of content placeholders for use by third parties.
         */
        get: function () {
            return this._placeholderProvider;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ApplicationCustomizerContext.prototype, "application", {
        /**
         * Provides access to the client-side application that is currently running.
         */
        get: function () {
            return this._applicationAccessor;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @override
     */
    ApplicationCustomizerContext.prototype.dispose = function () {
        if (!this.isDisposed) {
            this._placeholderProvider.dispose();
            delete this._placeholderProvider;
            delete this._applicationAccessor;
        }
        _super.prototype.dispose.call(this);
    };
    return ApplicationCustomizerContext;
}(_microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_1__["ExtensionContext"]));
/* harmony default export */ __webpack_exports__["default"] = (ApplicationCustomizerContext);


/***/ }),

/***/ "L9tx":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/FabricCustomizations.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: applyDeferredFabricCustomizations, applyPltFabricCustomizations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyPltFabricCustomizations", function() { return applyPltFabricCustomizations; });
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/FeatureOverrides */ "6TYi");
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _FluentFeatures__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FluentFeatures */ "1/3F");
/* harmony import */ var _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @uifabric/utilities/lib/customizations/Customizations */ "TgkG");
/* harmony import */ var _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-utilities/lib/performance/PerformanceMarker */ "Oy+S");
/* harmony import */ var _ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Breadcrumb_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Breadcrumb.styles */ "x5SF");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Callout_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Callout.styles */ "W3Vu");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_CommandBar_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/CommandBar.styles */ "+1sd");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_CommandBarButton_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/CommandBarButton.styles */ "f70Y");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_ContextualMenu_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/ContextualMenu.styles */ "B1Lc");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_DetailsColumn_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/DetailsColumn.styles */ "XNgR");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_DefaultButton_styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/DefaultButton.styles */ "hnn/");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_DetailsList_styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/DetailsList.styles */ "k7mo");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Dialog_styles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Dialog.styles */ "jJYg");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Facepile_styles__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Facepile.styles */ "8Z0f");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_GroupedList_styles__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/GroupedList.styles */ "CysO");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Label_styles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Label.styles */ "Zovb");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Link_styles__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Link.styles */ "FABR");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_MessageBar_styles__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/MessageBar.styles */ "CwP6");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_MessageBarButton_styles__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/MessageBarButton.styles */ "BNuR");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Nav_styles__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Nav.styles */ "Ro57");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_TextField_styles__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/TextField.styles */ "RdeX");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_PrimaryButton_styles__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/PrimaryButton.styles */ "FUc+");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_Pivot_styles__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/Pivot.styles */ "IWZz");
/* harmony import */ var _uifabric_mdl2_theme_lib_mdl2_styles_TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @uifabric/mdl2-theme/lib/mdl2/styles/TeachingBubble.styles */ "ryFB");
/* harmony import */ var _ApplyDeferredCustomizations__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ApplyDeferredCustomizations */ "/jhG");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyDeferredFabricCustomizations", function() { return _ApplyDeferredCustomizations__WEBPACK_IMPORTED_MODULE_24__["applyDeferredFabricCustomizations"]; });





 // SPList
 // sp-client
 // all
 // all
 // sp-client OUFR bundle
 // SPList
 // site homepage

 // SPList
 // publishing pages
 // SPList
 // web parts
 // web parts
 // all
 // all
 // all
 // SPList
 // publishing pages CommBar
 // site contents
 // just in case

var appliedPltFabricCustomizations = false;
/** Applies Fabric MDL2 style Customization overrides for PLT components */
function applyPltFabricCustomizations() {
    if (appliedPltFabricCustomizations) {
        return;
    }
    if (!_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_1__["EnableFluentTheme"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_1__["OnedriveFluentCustomization"]) &&
        !_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(_FluentFeatures__WEBPACK_IMPORTED_MODULE_1__["EnableFluentStylingODC"])) {
        Object(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_3__["mark"])('FabricCustomizations_PLT_Start');
        // this object copied from MDL2Styles.ts, the one with errors were removed because they weren't imported
        var mdl2Styles_1 = {
            Breadcrumb: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Breadcrumb_styles__WEBPACK_IMPORTED_MODULE_4__["BreadcrumbStyles"] },
            CalloutContent: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Callout_styles__WEBPACK_IMPORTED_MODULE_5__["CalloutContentStyles"] },
            CommandBar: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_CommandBar_styles__WEBPACK_IMPORTED_MODULE_6__["CommandBarStyles"] },
            CommandBarButton: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_CommandBarButton_styles__WEBPACK_IMPORTED_MODULE_7__["CommandBarButtonStyles"] },
            Check: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DetailsList_styles__WEBPACK_IMPORTED_MODULE_11__["CheckStyles"] },
            ContextualMenu: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_ContextualMenu_styles__WEBPACK_IMPORTED_MODULE_8__["ContextualMenuStyles"] },
            DefaultButton: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DefaultButton_styles__WEBPACK_IMPORTED_MODULE_10__["DefaultButtonStyles"] },
            DetailsColumn: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DetailsColumn_styles__WEBPACK_IMPORTED_MODULE_9__["DetailsColumnStyles"] },
            DetailsHeader: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DetailsList_styles__WEBPACK_IMPORTED_MODULE_11__["DetailsHeaderStyles"] },
            DetailsRow: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DetailsList_styles__WEBPACK_IMPORTED_MODULE_11__["DetailsRowStyles"] },
            DetailsRowCheck: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_DetailsList_styles__WEBPACK_IMPORTED_MODULE_11__["DetailsRowCheckStyles"] },
            DialogContent: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Dialog_styles__WEBPACK_IMPORTED_MODULE_12__["DialogContentStyles"] },
            DialogFooter: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Dialog_styles__WEBPACK_IMPORTED_MODULE_12__["DialogFooterStyles"] },
            Facepile: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Facepile_styles__WEBPACK_IMPORTED_MODULE_13__["FacepileStyles"] },
            GroupHeader: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_GroupedList_styles__WEBPACK_IMPORTED_MODULE_14__["GroupHeaderStyles"] },
            Label: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Label_styles__WEBPACK_IMPORTED_MODULE_15__["LabelStyles"] },
            Link: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Link_styles__WEBPACK_IMPORTED_MODULE_16__["LinkStyles"] },
            MessageBar: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_MessageBar_styles__WEBPACK_IMPORTED_MODULE_17__["MessageBarStyles"] },
            MessageBarButton: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_MessageBarButton_styles__WEBPACK_IMPORTED_MODULE_18__["MessageBarButtonStyles"] },
            Nav: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Nav_styles__WEBPACK_IMPORTED_MODULE_19__["NavStyles"] },
            Pivot: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_Pivot_styles__WEBPACK_IMPORTED_MODULE_22__["PivotStyles"] },
            PrimaryButton: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_PrimaryButton_styles__WEBPACK_IMPORTED_MODULE_21__["PrimaryButtonStyles"] },
            TeachingBubble: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_23__["TeachingBubbleStyles"] },
            TeachingBubbleContent: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_23__["TeachingBubbleStyles"] },
            TextField: { styles: _uifabric_mdl2_theme_lib_mdl2_styles_TextField_styles__WEBPACK_IMPORTED_MODULE_20__["TextFieldStyles"] },
        };
        appliedPltFabricCustomizations = true;
        _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].applyBatchedUpdates(function () {
            for (var c in mdl2Styles_1) {
                _uifabric_utilities_lib_customizations_Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].applyScopedSettings(c, mdl2Styles_1[c]);
            }
        });
        Object(_ms_odsp_utilities_lib_performance_PerformanceMarker__WEBPACK_IMPORTED_MODULE_3__["mark"])('FabricCustomizations_PLT_End');
    }
}
//# sourceMappingURL=FabricCustomizations.js.map

/***/ }),

/***/ "LODL":
/*!****************************************************!*\
  !*** ./lib/pageChrome/SPPageChrome.module.scss.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* tslint:disable */
__webpack_require__(/*! ./SPPageChrome.module.css */ "H2L0");
var styles = {
    spPageContentTransition: 'spPageContentTransition_8a76ec2e'
};
/* harmony default export */ __webpack_exports__["default"] = (styles);
/* tslint:enable */ 


/***/ }),

/***/ "MS/P":
/*!*********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/async/Promise.js ***!
  \*********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/async/Promise.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.Promise;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "OoZ+":
/*!**********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/events/QosError.event.js ***!
  \**********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var SingleEventBase_1 = __webpack_require__(/*! ../SingleEventBase */ "8WDM");
var CaughtError_event_1 = __webpack_require__(/*! ./CaughtError.event */ "G61I");
var ResultTypeEnum_1 = __webpack_require__(/*! ./ResultTypeEnum */ "yq8I");
exports.ResultTypeEnum = ResultTypeEnum_1.ResultTypeEnum;
exports.QosError = SingleEventBase_1.createSingleEvent({
    eventName: 'QosError,CaughtError,Trace,',
    shortEventName: 'QosError',
    critical: true
}, {
    name: {
        isKey: true,
        type: 1 /* String */
    },
    resultCode: 1 /* String */,
    resultType: {
        typeRef: ResultTypeEnum_1.ResultTypeEnum,
        type: 6 /* Enum */
    }
}, CaughtError_event_1.CaughtError);
//# sourceMappingURL=QosError.event.js.map

/***/ }),

/***/ "Oy+S":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/performance/PerformanceMarker.js ***!
  \*************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// OneDrive:IgnoreCodeCoverage
var performance = window.performance;
var HighResolutionTimingSupported = !!performance && typeof performance.mark === 'function' &&
    typeof performance.clearMarks === 'function' &&
    typeof performance.now === 'function';
exports.HighResolutionTimingSupported = HighResolutionTimingSupported;
exports.MARKER_PREFIX = "EUPL.";
var _markCount = 0;
var _perfMarks = window['_perfMarks'] = window['_perfMarks'] || []; // used for browsers do not support native performance.mark
function mark(name, limit) {
    var markName = addPrefix(name);
    if (limit === null || limit === undefined || _markCount < limit) {
        if (HighResolutionTimingSupported) {
            performance.mark(markName);
        }
        else { // this is for browser does not support native performance.mark
            _perfMarks.push({
                name: markName,
                startTime: Date.now()
            });
        }
        _markCount++;
    }
}
exports.mark = mark;
function measure(name, startName, endName) {
    if (HighResolutionTimingSupported) {
        if (getMarkerTime(startName) > 0 && getMarkerTime(endName) > 0) {
            try {
                performance.measure(addPrefix(name), addPrefix(startName), addPrefix(endName));
            }
            catch (_a) {
                // Not important.
            }
        }
    }
}
exports.measure = measure;
function getMarkerTime(name) {
    var markName = addPrefix(name);
    if (HighResolutionTimingSupported) {
        var mark_1 = performance.getEntriesByName(markName);
        return mark_1 && mark_1.length > 0 ? Math.round(mark_1[0].startTime) : NaN;
    }
    else {
        var mark_2 = _perfMarks.filter(function (mark) { return mark.name === markName; })[0];
        return mark_2 && mark_2.startTime;
    }
}
exports.getMarkerTime = getMarkerTime;
function clearMarks(names) {
    var markNames = [];
    if (names) {
        markNames = names.map(addPrefix);
    }
    if (HighResolutionTimingSupported) {
        performance.getEntriesByType("mark").filter(function (mark) {
            if (markNames.length > 0) {
                return markNames.indexOf(mark.name) >= 0;
            }
            return mark.name.lastIndexOf(exports.MARKER_PREFIX, 0) === 0;
        }).forEach(function (mark) {
            performance.clearMarks(mark.name);
        });
    }
    else {
        _perfMarks = [];
    }
}
exports.clearMarks = clearMarks;
function getAllMarks() {
    'use strict';
    if (HighResolutionTimingSupported) {
        return performance.getEntriesByType("mark").filter(function (mark) {
            return mark.name.lastIndexOf(exports.MARKER_PREFIX, 0) === 0;
        });
    }
    else {
        return _perfMarks;
    }
}
exports.getAllMarks = getAllMarks;
function addPrefix(name) {
    return name.lastIndexOf(exports.MARKER_PREFIX, 0) === 0 ? name : exports.MARKER_PREFIX + name;
}
//# sourceMappingURL=PerformanceMarker.js.map

/***/ }),

/***/ "P/8H":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/EventBase.js ***!
  \**********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
var Manager_1 = __webpack_require__(/*! ./Manager */ "rdzh");
var CorrelationVector_1 = __webpack_require__(/*! ./CorrelationVector */ "7Oog");
var assign_1 = __webpack_require__(/*! @ms/utilities-objects/lib/assign */ "vFq2");
// tslint:disable:no-bitwise
var _id = 0;
var ClonedEventType;
(function (ClonedEventType) {
    ClonedEventType[ClonedEventType["Single"] = 0] = "Single";
    ClonedEventType[ClonedEventType["Start"] = 1] = "Start";
    ClonedEventType[ClonedEventType["End"] = 2] = "End";
})(ClonedEventType = exports.ClonedEventType || (exports.ClonedEventType = {}));
var ValidationErrorType;
(function (ValidationErrorType) {
    ValidationErrorType[ValidationErrorType["NoParent"] = 1] = "NoParent";
})(ValidationErrorType = exports.ValidationErrorType || (exports.ValidationErrorType = {}));
var AccountType;
(function (AccountType) {
    AccountType[AccountType["Consumer"] = 0] = "Consumer";
    AccountType[AccountType["ConsumerAnonymous"] = 1] = "ConsumerAnonymous";
    AccountType[AccountType["Business"] = 2] = "Business";
    AccountType[AccountType["BusinessAnonymous"] = 3] = "BusinessAnonymous";
    AccountType[AccountType["Unknown"] = 4] = "Unknown";
})(AccountType = exports.AccountType || (exports.AccountType = {}));
function addEventProps(eventPrototype, props, metadata, baseClass) {
    assign_1.assign(eventPrototype, props);
    var resultMetadata = {};
    for (var key in metadata) {
        if (Object.prototype.hasOwnProperty.call(metadata, key)) {
            var item = metadata[key];
            var result = resultMetadata[key] = (typeof item === 'number' ? { type: item } : item);
            result.definedInName = props.shortEventName;
            if (result.type === 2 /* Number */) {
                result.isMetric = true;
            }
        }
    }
    eventPrototype.metadata = baseClass ? tslib_1.__assign({}, baseClass.prototype.metadata, resultMetadata) : resultMetadata;
}
exports.addEventProps = addEventProps;
var managerSpecificEventTypes = new WeakMap(); // tslint:disable-line:no-any
var EventBase = /** @class */ (function () {
    function EventBase(data, startType, parent) {
        this.context = {};
        this.validationErrors = 0;
        this.data = {};
        this.context = tslib_1.__assign({}, this.addContext({}));
        this.id = _id++;
        this.enabled = this._isEnabled();
        // Set the parent id if needed
        if (parent) {
            this.parentId = parent.id;
        }
        else if (this.requiresParent) {
            this._addValidationError(ValidationErrorType.NoParent);
        }
        // Set the start time
        this.startTime = (data && data.startTimeOverride) || Manager_1.Manager.getTime();
        this.vector = new CorrelationVector_1.CorrelationVector(parent ? parent.vector : CorrelationVector_1.CorrelationVector.RootVector);
        // Set the data if we have it
        if (data) {
            this._setData(data);
        }
        // Send the start event
        this._logEvent(startType);
    }
    /**
     * This will return true if the event is enabled
     */
    EventBase.enabled = function () {
        return this.prototype._isEnabled();
    };
    /**
     * This will return true if the event is of this type
     * @param event {IEvent} The event to compare
     */
    EventBase.isTypeOf = function (event) {
        return event.eventName.indexOf(this.prototype.shortEventName + ',') >= 0;
    };
    EventBase.withManager = function (manager) {
        if (!manager || manager === Manager_1.Manager) {
            return this;
        }
        var eventTypesForManager = managerSpecificEventTypes.get(manager);
        if (!eventTypesForManager) {
            eventTypesForManager = new WeakMap();
            managerSpecificEventTypes.set(manager, eventTypesForManager);
        }
        var eventType = eventTypesForManager.get(this);
        if (eventType) {
            return eventType;
        }
        // @ts-ignore
        var EventWithManager = /** @class */ (function (_super) {
            tslib_1.__extends(EventWithManager, _super);
            function EventWithManager() {
                return _super !== null && _super.apply(this, arguments) || this;
            }
            return EventWithManager;
        }((this)));
        // @ts-ignore
        EventWithManager.prototype.manager = manager;
        eventType = EventWithManager;
        eventTypesForManager.set(this, eventType);
        return eventType;
    };
    EventBase.withData = function (modifier) {
        if (!modifier) {
            return this;
        }
        var addData = typeof modifier !== 'function' ? function (data) { return (tslib_1.__assign({}, modifier, data)); } : modifier;
        // @ts-ignore
        var EventWithData = /** @class */ (function (_super) {
            tslib_1.__extends(EventWithData, _super);
            function EventWithData() {
                return _super !== null && _super.apply(this, arguments) || this;
            }
            EventWithData.prototype.addData = function (data) {
                var localData = tslib_1.__assign({}, data, addData(data));
                return tslib_1.__assign({}, localData, _super.prototype.addData.call(this, localData));
            };
            return EventWithData;
        }((this)));
        return EventWithData;
    };
    EventBase.withContext = function (modifier) {
        if (!modifier) {
            return this;
        }
        var addContext = typeof modifier !== 'function' ? function (context) { return (tslib_1.__assign({}, modifier, context)); } : modifier;
        // @ts-ignore
        var EventWithContext = /** @class */ (function (_super) {
            tslib_1.__extends(EventWithContext, _super);
            function EventWithContext() {
                return _super !== null && _super.apply(this, arguments) || this;
            }
            EventWithContext.prototype.addContext = function (context) {
                var localContext = tslib_1.__assign({}, context, addContext(context));
                return tslib_1.__assign({}, localContext, _super.prototype.addContext.call(this, localContext));
            };
            return EventWithContext;
        }((this)));
        return EventWithContext;
    };
    EventBase.from = function (sourceEventType) {
        if (!sourceEventType) {
            return this;
        }
        return this
            .withManager(sourceEventType.prototype.manager)
            .withContext(function (context) { return sourceEventType.prototype.addContext(context); })
            .withData(function (data) { return sourceEventType.prototype.addData(data); }); // tslint:disable-line:no-any
    };
    EventBase.prototype.addContext = function (context) {
        return copyObject(this.manager, context, {});
    };
    EventBase.prototype.addData = function (data) {
        return data;
    };
    EventBase.prototype._isEnabled = function () {
        // All events are enabled by default
        return !this.samplingFeature || Manager_1.Manager.isFeatureEnabled(this.samplingFeature);
    };
    EventBase.prototype._setData = function (data) {
        var stored = this.data;
        for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) {
            var key = _a[_i];
            if (key in this.metadata) {
                processValue(this.manager, data, stored, key);
            }
        }
        assign_1.assign(this.data, this.addData(this.data));
    };
    EventBase.prototype._logEvent = function (eventType) {
        this.manager.logEvent(this, eventType);
    };
    EventBase.prototype._addValidationError = function (type) {
        this.validationErrors = this.validationErrors | type;
        this.manager.logValidationError(this, type);
    };
    return EventBase;
}());
exports.EventBase = EventBase;
function processValue(manager, source, target, key) {
    var value = source[key];
    switch (typeof value) {
        case 'string':
            // Allow the cleaner to know what it is being stored as
            // This might be used to always scrub values for a particular key
            var cleaned = manager.cleanString(value, key);
            if (cleaned !== undefined) {
                target[key] = cleaned;
            }
            return;
        case 'undefined':
            return;
        case 'object':
            // Need to handle ABExperiment objects
            if (value && Object.getPrototypeOf(value) === Object.prototype) {
                // Still overwrite
                target[key] = copyObject(manager, value, {});
            }
            else {
                target[key] = value;
            }
            return;
        default:
            target[key] = value;
            return;
    }
}
function copyObject(manager, source, target) {
    for (var _i = 0, _a = Object.keys(source); _i < _a.length; _i++) {
        var key = _a[_i];
        processValue(manager, source, target, key);
    }
    return target;
}
var proto = EventBase.prototype;
proto.eventName = 'EventBase,';
proto.shortEventName = 'EventBase';
// All events are not critical by default
proto.critical = false;
// All events require parents by default
proto.requiresParent = true;
proto.manager = Manager_1.Manager;
//# sourceMappingURL=EventBase.js.map

/***/ }),

/***/ "PcWP":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-error/0.10.2/node_modules/@ms/utilities-error/lib/ApiError.js ***!
  \*****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
var CustomError_1 = __webpack_require__(/*! ./CustomError */ "S2tz");
/**
 * Custom error base class for the common scenario of generic errors that should be reported in
 * Quality of Service metrics.
 */
var ApiError = /** @class */ (function (_super) {
    tslib_1.__extends(ApiError, _super);
    function ApiError(props) {
        var _this = _super.call(this, props) || this;
        var innerError = props.innerError;
        var errorData = innerError instanceof ApiError ? {
            correlationId: innerError.correlationId,
            isExpected: innerError.isExpected,
            code: innerError.code
        } : {};
        var _a = props.correlationId, correlationId = _a === void 0 ? errorData.correlationId : _a, _b = props.isExpected, isExpected = _b === void 0 ? errorData.isExpected : _b, _c = props.code, code = _c === void 0 ? errorData.code : _c;
        _this.correlationId = correlationId;
        _this.isExpected = !!isExpected;
        _this.code = code || 'ApiError';
        return _this;
    }
    return ApiError;
}(CustomError_1.CustomError));
exports.ApiError = ApiError;
//# sourceMappingURL=ApiError.js.map

/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "Q81X":
/*!***********************************!*\
  !*** ./lib/ApplicationManager.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ApplicationLoadType */ "fBGb");
/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BaseApplication */ "n9Iz");
/* harmony import */ var _navigator_OnBeforeNavigationEventName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./navigator/OnBeforeNavigationEventName */ "JwFY");
/* harmony import */ var _navigator_Navigator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./navigator/Navigator */ "2fZ3");
/* harmony import */ var _pageChrome_SPPageChrome__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pageChrome/SPPageChrome */ "KdXK");
/* harmony import */ var _SPApplicationBase_resx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SPApplicationBase.resx */ "Cc0y");
// Copyright (c) Microsoft. All rights reserved.










// Qos constants
var startQosScenarioName = 'ApplicationManager.start';
var initializeQosScenarioName = 'ApplicationManager.initialize';
var applicationFailedToLoadFailure = 'ApplicationFailedToLoad';
var shellStartFailure = 'SPShell.Start';
/**
 * Application manager. Includes logic to load SPFX client-side applications.
 * @internal
 */
var ApplicationManager = /** @class */ (function () {
    /**
     * Creates an application manager.
     * @param serviceScope - Root service scope.
     */
    function ApplicationManager(serviceScope, navigator) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._serviceScope = serviceScope;
        this._navigator = navigator || new _navigator_Navigator__WEBPACK_IMPORTED_MODULE_7__["default"](this._serviceScope, this);
    }
    /**
     * Returns true if the current application is a chromeless application.
     *
     * @privateRemarks
     * PageChrome, SuiteNav and application render do not apply to chromeless applications, like
     * Classic pages and ListView application, and should not be called.
     * This is a temporary fix to prevent page chrome DOM and styles from getting inserted into
     * the list view host application.
     *
     * @internal
     */
    ApplicationManager._isChromelessApplication = function (componentId) {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"].type === _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].ClassicSharePoint ||
            componentId === 'b1ab4aaa-f779-405c-8683-d3a750b5d18d';
    };
    Object.defineProperty(ApplicationManager.prototype, "currentApplicationId", {
        /**
         * Returns the currently loaded application.
         * Returns Guid.empty if no application is currently loaded.
         */
        get: function () {
            var appComponentId = this._currentApplication && this._currentApplication.componentId;
            return appComponentId ? _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(appComponentId) : _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].empty;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ApplicationManager.prototype, "currentApplication", {
        /**
         * Returns the currently loaded application.
         * Returns Guid.empty if no application is currently loaded.
         */
        get: function () {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(this._currentApplication, 'currentApplication');
            return this._currentApplication;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Loads an application and starts its execution.
     *
     * @param preloadedData - Application preloaded data. Must include the application id.
     * @param pageChrome - Page Chrome in which the application will be rendered.
     */
    ApplicationManager.prototype.startApplication = function (preloadedData, pageChrome) {
        var _this = this;
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(preloadedData.clientSideApplicationId, 'preloadedData.clientSideApplicationId');
        }
        catch (error) {
            return Promise.reject(error);
        }
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](startQosScenarioName);
        function error(message, failureId) {
            var err = new Error(message);
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ApplicationManager._logSource, err);
            qosMonitor.writeUnexpectedFailure(failureId, err);
            throw err;
        }
        var applicationId = preloadedData.clientSideApplicationId;
        // This must run before calling Navigator.navigateToPreloadedData to ensure DialogManager is set up.
        if (!this._isChromelessApplication(applicationId) && !pageChrome) {
            pageChrome = new _pageChrome_SPPageChrome__WEBPACK_IMPORTED_MODULE_8__["default"](this._serviceScope);
        }
        var appManifest = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].tryGetManifestById(applicationId);
        var appComponent = !!appManifest ? _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].tryGetLoadedComponent(appManifest) : undefined;
        if (appComponent) {
            // Application was loaded synchronously
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                this._navigator.navigateToPreloadedData(preloadedData);
            }
            return this._initializeApplicationWithTelemetry(appComponent, applicationId, pageChrome, qosMonitor, error).then(function (app) {
                // When the flight is off we need to load the application customizers after the application has rendered.
                // This is to ensure that the placeholders have been set up before we execute the AC.
                if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                    _this._navigator._loadApplicationCustomizers(preloadedData);
                }
                return app;
            });
        }
        else {
            // Application was not loaded synchronously. Request loading the application.
            var appComponentPromise = this._loadApplicationComponent(applicationId, error);
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                this._navigator.navigateToPreloadedData(preloadedData);
            }
            return appComponentPromise.then(function (application) {
                return _this._initializeApplicationWithTelemetry(application, applicationId, pageChrome, qosMonitor, error).then(function (app) {
                    // When the flight is off we need to load the application customizers after the application has rendered.
                    // This is to ensure that the placeholders have been set up before we execute the AC.
                    if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence()) {
                        _this._navigator._loadApplicationCustomizers(preloadedData);
                    }
                    return app;
                });
            });
        }
    };
    ApplicationManager.prototype._raiseOnBeforeNavigationEventName = function (fromAppId, toAppId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(_BaseApplication__WEBPACK_IMPORTED_MODULE_5__["default"]._onBeforeNavigationEventName, new _navigator_OnBeforeNavigationEventName__WEBPACK_IMPORTED_MODULE_6__["default"](fromAppId, toAppId));
    };
    Object.defineProperty(ApplicationManager.prototype, "_applicationLoadType", {
        get: function () {
            return this._previousApplication ?
                _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_4__["ApplicationLoadType"].InPlaceNavigation :
                _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_4__["ApplicationLoadType"].FullPageLoad;
        },
        enumerable: true,
        configurable: true
    });
    ApplicationManager.prototype._shouldRaiseOnBeforeNavigationEvent = function () {
        return !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('bc792189-6879-4d06-9c7d-0fcac8abb279'), '29/03/2019', 'RaiseOnBeforeNavigationEvent');
    };
    ApplicationManager.prototype._initializeApplicationWithTelemetry = function (application, applicationId, pageChrome, qosMonitor, error) {
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_3__["_PerformanceLogger"].markApplicationStart();
        return this._initializeApplication(new application.default(), applicationId, pageChrome)
            .then(function (result) {
            qosMonitor.writeSuccess();
            return result;
        }).catch(function (e) {
            return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_SPApplicationBase_resx__WEBPACK_IMPORTED_MODULE_9__["default"].applicationFailedToInitializeError, e), shellStartFailure);
        });
    };
    /**
     * Loads the application, defined by the application id passed as input.
     * Rejects the promise if the application can't be loaded.
     */
    ApplicationManager.prototype._loadApplicationComponent = function (applicationId, error) {
        return _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].loadComponentById(applicationId)
            .catch(function (e) {
            return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_SPApplicationBase_resx__WEBPACK_IMPORTED_MODULE_9__["default"].applicationFailedToLoadWithMessageError, applicationId, e.message), applicationFailedToLoadFailure);
        });
    };
    ApplicationManager.prototype._isChromelessApplication = function (applicationId) {
        return ApplicationManager._isChromelessApplication(applicationId);
    };
    /**
     * Initializes the application.
     * It sets up the PageChrome and SuiteNav if necessary, initializes the application context
     * and renders the application if necessary.
     *
     * @param application - Application to initialize.
     * @param applicationId - Application component Id.
     * @param pageChrome - Application Page Chrome
     *
     * @returns A promise
     */
    ApplicationManager.prototype._initializeApplication = function (application, applicationId, pageChrome) {
        var _this = this;
        if (application['__type'] !== 'BaseApplication') { // tslint:disable-line:no-string-literal
            return Promise.reject(new Error('The application is not a subclass of BaseApplication'));
        }
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](initializeQosScenarioName);
        var applicationManifest = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].tryGetManifestById(applicationId);
        var qosApplicationData = {
            alias: application.alias || applicationManifest.alias,
            isInternal: applicationManifest.isInternal,
            manifestId: applicationManifest.id
        };
        if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence() && this._currentApplication) {
            this._previousApplication = this._currentApplication;
        }
        this._currentApplication = application;
        if (this._previousApplication) {
            if (this._shouldRaiseOnBeforeNavigationEvent()) {
                this._raiseOnBeforeNavigationEventName(this._previousApplication.componentId, applicationId);
            }
            this._previousApplication._unload();
        }
        try {
            return this._currentApplication._load({
                manifest: applicationManifest,
                parentServiceScope: this._serviceScope,
                navigator: this._navigator,
                instanceId: applicationManifest.id,
                loggingTag: "Application." + applicationManifest.id,
                chrome: pageChrome,
                loadType: this._applicationLoadType
            }).then(function () {
                if (_this._previousApplication) {
                    _this._previousApplication.dispose();
                    _this._previousApplication = undefined;
                }
                if (!_this._isChromelessApplication(applicationId)) {
                    _this._currentApplication._loadTheme();
                    _this._currentApplication._render();
                }
                qosMonitor.writeSuccess(qosApplicationData);
                return application;
            }).catch(function (e) {
                qosMonitor.writeUnexpectedFailure('AsyncError', e, qosApplicationData);
                return Promise.reject(e);
            });
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('GeneralError', e, qosApplicationData);
            return Promise.reject(e);
        }
    };
    ApplicationManager._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('ApplicationManager');
    return ApplicationManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (ApplicationManager);


/***/ }),

/***/ "Qd2r":
/*!************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/ErrorHelper.js ***!
  \************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var CaughtError_event_1 = __webpack_require__(/*! ./events/CaughtError.event */ "G61I");
var QosError_event_1 = __webpack_require__(/*! ./events/QosError.event */ "OoZ+");
var Verbose_event_1 = __webpack_require__(/*! ./events/Verbose.event */ "Yr1X");
var CircularBuffer_1 = __webpack_require__(/*! ./utilities/CircularBuffer */ "SE01");
var safeSerialize_1 = __webpack_require__(/*! @ms/utilities-objects/lib/safeSerialize */ "FO0h");
var MAX_VERBOSE_LOGS = 50;
var CANCELED = 'Canceled';
var _verboseLogs = new CircularBuffer_1.CircularBuffer(MAX_VERBOSE_LOGS);
function verbose(message, eventName) {
    _verboseLogs.push({
        name: eventName,
        message: message
    });
}
exports.verbose = verbose;
function logError(error, extraData, qosData) {
    if (!error || _isCanceled(error)) {
        return;
    }
    var message = getErrorMessage(error);
    var stack = error && typeof error === 'object' && ('stack' in error) && error.stack ? error.stack : '';
    var schema;
    while (schema = _verboseLogs.popOldest()) {
        Verbose_event_1.Verbose.logData(schema);
    }
    if (qosData && qosData.eventName) {
        QosError_event_1.QosError.logData({
            name: qosData.eventName,
            resultCode: qosData.resultCode,
            resultType: qosData.resultType,
            extraData: extraData || {},
            message: message,
            stack: stack
        });
    }
    else {
        CaughtError_event_1.CaughtError.logData({
            extraData: extraData || {},
            message: message,
            stack: stack
        });
    }
}
exports.logError = logError;
function log(error, eventName, resultCode, resultType) {
    logError(error, undefined, { eventName: eventName, resultCode: resultCode, resultType: resultType });
}
exports.log = log;
/**
 * Extract the error message from the error
 */
function getErrorMessage(error) {
    var message = '';
    if (error) {
        if (typeof (error) === 'object' && 'message' in error) {
            message = error.message;
        }
        else if (typeof (error) === 'object' && 'description' in error) {
            message = error.description;
        }
        else if (typeof (error) === 'object') {
            message = safeSerialize_1.safeSerialize(error);
        }
        else if (error.toString) {
            message = error.toString();
        }
    }
    return message;
}
exports.getErrorMessage = getErrorMessage;
function _isCanceled(error) {
    return error === CANCELED ||
        (!!error && typeof error === 'object' && ('name' in error) && error.name === CANCELED) ||
        (!!error && typeof error === 'object' && ('message' in error) && error.message === CANCELED);
}
//# sourceMappingURL=ErrorHelper.js.map

/***/ }),

/***/ "RdeX":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/TextField.styles.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: TextFieldStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFieldStyles", function() { return TextFieldStyles; });
var TextFieldStyles = function (props) {
    var multiline = props.multiline;
    return {
        field: {
            padding: !multiline ? '0 12px' : '6px 8px'
        }
    };
};
//# sourceMappingURL=TextField.styles.js.map

/***/ }),

/***/ "Ro57":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Nav.styles.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: NavStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavStyles", function() { return NavStyles; });
var NavStyles = function (props) {
    var theme = props.theme, isDisabled = props.isDisabled, isSelected = props.isSelected, isGroup = props.isGroup, isLink = props.isLink, _a = props.navHeight, navHeight = _a === void 0 ? 36 : _a;
    var palette = theme.palette;
    return {
        link: [
            {
                height: navHeight,
                lineHeight: navHeight + "px"
            },
            !isDisabled && {
                selectors: {
                    '.ms-Nav-compositeLink:hover &': {
                        backgroundColor: palette.neutralLighterAlt
                    }
                }
            },
            isSelected && {
                backgroundColor: palette.neutralLighter
            }
        ],
        chevronButton: [
            {
                lineHeight: navHeight + "px",
                selectors: {
                    '&:hover': {
                        backgroundColor: palette.neutralLighterAlt
                    },
                    '$compositeLink:hover &': {
                        backgroundColor: palette.neutralLighterAlt
                    }
                }
            },
            isGroup && {
                height: navHeight
            },
            isLink && {
                height: navHeight - 2
            }
        ],
        chevronIcon: {
            height: navHeight,
            lineHeight: navHeight + "px"
        }
    };
};
//# sourceMappingURL=Nav.styles.js.map

/***/ }),

/***/ "Rr6l":
/*!**********************************************************!*\
  !*** ./lib/extensibility/ApplicationCustomizerLoader.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-extension-base */ "ZFc5");
/* harmony import */ var _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ApplicationCustomizerContext */ "L9BA");
/* harmony import */ var _ApplicationCustomizerContextFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ApplicationCustomizerContextFactory */ "IPei");
/* harmony import */ var _BaseApplicationCustomizer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./BaseApplicationCustomizer */ "5aZ1");
/* harmony import */ var _customAction_ClientSideCustomAction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./customAction/ClientSideCustomAction */ "J5U9");
/* harmony import */ var _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./customAction/CustomActionLocations */ "4QmI");
/* harmony import */ var _placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./placeholder/PlaceholderManager */ "/HB6");
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/Killswitches */ "dQCu");
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common/Flights */ "w4+A");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__);














/**
 * A helper class for loading ApplicationCustomizer extensions.
 */
var ApplicationCustomizerLoader = /** @class */ (function () {
    function ApplicationCustomizerLoader(serviceScope) {
        var _this = this;
        this._customActionFromPreloadedData = [];
        this._debugCustomActions = [];
        this._debugCustomizerLoaded = false;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._serviceScope = serviceScope;
        this._extensionManager = new _microsoft_sp_extension_base__WEBPACK_IMPORTED_MODULE_2__["_ExtensionManager"](this._serviceScope, _BaseApplicationCustomizer__WEBPACK_IMPORTED_MODULE_7__["default"]);
        this._applicationCustomizerContextFactory = new _ApplicationCustomizerContextFactory__WEBPACK_IMPORTED_MODULE_6__["default"](this._serviceScope);
        // Initialize the placeholder manager.
        serviceScope.whenFinished(function () {
            _this._placeholderManager = serviceScope.consume(_placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_10__["default"].serviceKey);
            _this._placeholderManager._enable();
        });
        this._currentCustomActions = new Set();
        this._currentCustomActionsWithContext = new Set();
    }
    /**
     * This method is called when the client-side application is initializing and before it has
     * rendered. It loads the associated client-side extensions. It may perform asynchronous
     * operations.
     */
    ApplicationCustomizerLoader.prototype.loadExtensions = function (preloadedCustomActions) {
        var _this = this;
        var futureCustomActions = new Set(preloadedCustomActions);
        var hadCustomActions = this._currentCustomActions.size > 0;
        var hasDebugCustomActions = this._hasDebugCustomActions();
        // Will have custom actions include the debug ones to ensure those are always loaded
        var willHaveCustomActions = futureCustomActions.size > 0 || hasDebugCustomActions;
        var areCustomActionsEqual = (!hadCustomActions && !willHaveCustomActions) ||
            (hadCustomActions && willHaveCustomActions && Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_4__["isEqual"])(this._currentCustomActions, futureCustomActions));
        var extensionsDisposed = false;
        // If there were custom actions, dispose them before loading the new ones
        if (hadCustomActions && !areCustomActionsEqual) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(ApplicationCustomizerLoader._logSource, 'Disposing existing extensions');
            this.disposeExtensions();
            extensionsDisposed = true;
        }
        this._currentCustomActions = futureCustomActions;
        if ((willHaveCustomActions && !areCustomActionsEqual) || // If new custom actions are needed, load them
            (hasDebugCustomActions && extensionsDisposed) // If we disposed debug extensions, make sure they are reloaded
        ) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(ApplicationCustomizerLoader._logSource, 'Loading new extensions');
            return this._loadExtensions(preloadedCustomActions).then(function () { return _this._loadDebugCustomizerIfEnabled(); });
        }
        return this._loadDebugCustomizerIfEnabled();
    };
    /**
     * This method is called when the client-side application is initializing and before it has
     * rendered. It creates the contexts for the extensions and cache them without loading the extensions' components.
     * As part of creating the context, placeholders will be created and rendered.
     */
    ApplicationCustomizerLoader.prototype.initializeExtensionsContext = function (preloadedCustomActions) {
        var customActionFromPreloadedData = this._loadCustomActionsFromPreloadedData(preloadedCustomActions);
        var debugCustomActions = this._loadCustomActionsFromQueryParameter();
        var customActions = debugCustomActions.concat(customActionFromPreloadedData);
        var newCustomActionsSet = new Set(customActions);
        if (this._currentCustomActionsWithContext.size !== 0 &&
            !Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_4__["isEqual"])(this._currentCustomActionsWithContext, newCustomActionsSet)) {
            this.disposeExtensions();
            this._addExtensionsInitAsKeyMetric();
        }
        this._currentCustomActionsWithContext = newCustomActionsSet;
        this._applicationCustomizerContextFactory.initialize(customActions);
    };
    /**
     * Disposes all existing application customizers and their associated placeholder contents.
     */
    ApplicationCustomizerLoader.prototype.disposeExtensions = function () {
        this._extensionManager.disposeExtensions();
        this._debugCustomizerLoaded = false;
        if (!_common_Killswitches__WEBPACK_IMPORTED_MODULE_11__["Killswitches"].isClearClientSideCustomActionsKSActive()) {
            this._currentCustomActions.clear();
        }
        this._applicationCustomizerContextFactory.clear();
    };
    Object.defineProperty(ApplicationCustomizerLoader.prototype, "_customActions", {
        get: function () {
            return this._debugCustomActions.concat(this._customActionFromPreloadedData);
        },
        enumerable: true,
        configurable: true
    });
    /**
     * If the debugging flight is enabled, automatically add the debug application customizer.
     */
    ApplicationCustomizerLoader.prototype._loadDebugCustomizerIfEnabled = function () {
        var _this = this;
        var debugApplicationCustomizerId = 'd29758ba-0fc0-4eac-bcfd-7fe5a7d0bc32';
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isDebugFlightEnabled &&
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1178 /* SppplatDebugExtension */) &&
            !this._debugCustomizerLoaded &&
            this._isDebugModeOn(/* params */ undefined)) {
            var customAction_1 = _customAction_ClientSideCustomAction__WEBPACK_IMPORTED_MODULE_8__["default"]._tryCreateFromDebugData('ClientSideExtension.ApplicationCustomizer', _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(debugApplicationCustomizerId), // component id
            undefined, // properties,
            0 // Sequence
            );
            if (customAction_1) {
                this._debugCustomizerLoaded = true;
                return _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__["_ManifestStore"].instance.requestManifest(debugApplicationCustomizerId).then(function () {
                    _this._createApplicationCustomizer(customAction_1);
                }).catch(function (error) {
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ApplicationCustomizerLoader._logSource, error);
                });
            }
        }
        return Promise.resolve();
    };
    ApplicationCustomizerLoader.prototype._loadExtensions = function (preloadedCustomActions) {
        this._loadCustomActions(preloadedCustomActions);
        var extensionPromises = [];
        var customActions = this._customActions;
        for (var _i = 0, customActions_1 = customActions; _i < customActions_1.length; _i++) {
            var customAction = customActions_1[_i];
            if (customAction.location === _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_9__["default"].APPLICATION_CUSTOMIZER) {
                extensionPromises.push(this._createApplicationCustomizer(customAction));
            }
        }
        if (extensionPromises.length > 0) {
            this._addExtensionsInitAsKeyMetric();
        }
        return Promise.all(extensionPromises)
            .then(function () { return _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].setPerformanceProperty(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].extensionsInitializedMetricName); });
    };
    ApplicationCustomizerLoader.prototype._createApplicationCustomizer = function (customAction) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('ApplicationCustomizer.Create');
        return this._extensionManager.createExtension(customAction.clientSideComponentId.toString(), customAction.clientSideComponentProperties, function (extensionContextParameters) {
            if (!_common_Killswitches__WEBPACK_IMPORTED_MODULE_11__["Killswitches"].isPreallocatedPlaceholdersforApplicationCustomizersKSActive()) {
                if (_common_Flights__WEBPACK_IMPORTED_MODULE_12__["Flights"].delayExtensionsLoading) {
                    return _this._applicationCustomizerContextFactory.getApplicationCustomizerContext(customAction);
                }
                else {
                    return _this._applicationCustomizerContextFactory.createApplicationCustomizerContext(customAction, extensionContextParameters, false);
                }
            }
            else {
                return new _ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_5__["default"](extensionContextParameters, {
                    sequence: customAction.sequence !== undefined ? customAction.sequence : 65535 // Max Sequence number
                });
            }
        }).then(function (extension) {
            qosMonitor.writeSuccess(_this._createQosExtraData(customAction));
            return extension;
        }).catch(function (error) {
            var err = new Error("Failed to create application customizer '" + customAction.tag + "'. Error information is '" + error.message + "'."); // tslint:disable-line:max-line-length
            qosMonitor.writeExpectedFailure('FailedCreateExtension', error, _this._createQosExtraData(customAction));
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ApplicationCustomizerLoader._logSource, err);
            throw err;
        });
    };
    ApplicationCustomizerLoader.prototype._addExtensionsInitAsKeyMetric = function () {
        if (_common_Killswitches__WEBPACK_IMPORTED_MODULE_11__["Killswitches"].isAddExtensionsInitPerfMarkerKSActive() ||
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].KeyMetrics.indexOf(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].extensionsInitializedMetricName) > -1) {
            return;
        }
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].addKeyMetric(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].extensionsInitializedMetricName);
        /** Ensure we set a value to the key metric to avoid a timeout in perf logger */
        setTimeout(function () {
            if (!_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].getPerformanceProperty(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].extensionsInitializedMetricName)) {
                var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('ApplicationCustomizerLoader.ExtensionsInitializedTimeout');
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].setPerformanceProperty(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_13__["_PerformanceLogger"].extensionsInitializedMetricName);
                qosMonitor.writeSuccess();
            }
        }, 15000);
    };
    ApplicationCustomizerLoader.prototype._createQosExtraData = function (customAction) {
        return {
            customAction: customAction.tag
        };
    };
    /**
     * Loads custom actions from both the preloaded data and the query parameter.
     */
    ApplicationCustomizerLoader.prototype._loadCustomActions = function (customActions) {
        this._customActionFromPreloadedData = this._loadCustomActionsFromPreloadedData(customActions);
        this._debugCustomActions = this._loadCustomActionsFromQueryParameter();
    };
    /**
     * Reads the custom actions from the preloaded data and creates ClientSideCustomAction objects for them.
     * @param customActions - Custom actions from the preloaded data.
     * @returns Array with the processed custom actions.
     */
    ApplicationCustomizerLoader.prototype._loadCustomActionsFromPreloadedData = function (customActions) {
        var clientSideCustomActions = [];
        // There are scenarios when server side customActions object may not be present.
        // e.g., the client code gets shipped before the server code.
        // In this case we want to be tolerant and treat that as a condition with no
        // custom actions.
        if (!!customActions) {
            // Initialize all the custom actions.
            for (var _i = 0, customActions_2 = customActions; _i < customActions_2.length; _i++) {
                var customAction = customActions_2[_i];
                if (customAction.location === _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_9__["default"].APPLICATION_CUSTOMIZER) {
                    var clientSideCustomAction = _customAction_ClientSideCustomAction__WEBPACK_IMPORTED_MODULE_8__["default"]._tryCreateFromPreloadedCustomAction(customAction);
                    // A failure to create the custom action will log an error and keep going.
                    if (clientSideCustomAction) {
                        clientSideCustomActions.push(clientSideCustomAction);
                    }
                }
            }
        }
        return clientSideCustomActions;
    };
    ApplicationCustomizerLoader.prototype._hasDebugCustomActions = function () {
        var queryParameters = new URL(window.location.href).searchParams;
        return !!queryParameters.get('customActions') ||
            (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isDebugFlightEnabled &&
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1178 /* SppplatDebugExtension */) && // for debug extension
                this._isDebugModeOn(queryParameters));
    };
    ApplicationCustomizerLoader.prototype._isDebugModeOn = function (queryParameters) {
        if (!queryParameters) {
            queryParameters = new URL(window.location.href).searchParams;
        }
        if (sessionStorage.getItem('spfx-debug')) {
            // Don't load in TAB which monitor for unexpected files
            return !queryParameters.get('istabtest');
        }
        // Enable showing once ?debug is added as engineers typically do
        return !!queryParameters.get('debug');
    };
    ApplicationCustomizerLoader.prototype._loadCustomActionsFromQueryParameter = function () {
        // Example query parameter:
        // ?customActions={"e2d1da94-b7e9-4c57-9551-1e80a11a035b":{"location":"ClientSideExtension.
        //   ListViewCommandSet.ContextMenu","properties":{"message":"Hello"}}}
        //
        // Example deserialized JSON:
        // {
        //   "e2d1da94-b7e9-4c57-9551-1e80a11a035b": {                            // clientSideComponentId
        //     "location": "ClientSideExtension.ListViewCommandSet.ContextMenu",  // location
        //     "properties": { "message": "Hello" }                               // clientSideComponentProperties
        //    }
        // }
        var parameters = new URL(window.location.href).searchParams;
        var parameterValue = parameters.get('customActions');
        var clientSideCustomActions = [];
        if (parameterValue) {
            var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('ApplicationCustomizerLoader.parseQueryParam');
            try {
                var decodedParameterValue = decodeURIComponent(parameterValue);
                var queryValue = JSON.parse(decodedParameterValue);
                var missingManifestIds = [];
                if (queryValue) {
                    for (var _i = 0, _a = Object.keys(queryValue); _i < _a.length; _i++) {
                        var key = _a[_i];
                        var clientSideComponentId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(key);
                        var location_1 = queryValue[key].location;
                        var properties = queryValue[key].properties;
                        var hostProperties = queryValue[key].hostProperties;
                        var sequence = queryValue[key].sequence;
                        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(clientSideComponentId, 'clientSideComponentId');
                        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(location_1, 'location');
                        if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__["SPComponentLoader"].tryGetManifestById(clientSideComponentId.toString())) {
                            missingManifestIds.push(clientSideComponentId);
                            continue; // Try to parse additional custom actions
                        }
                        if (clientSideComponentId && location_1) {
                            var customActions = _customAction_ClientSideCustomAction__WEBPACK_IMPORTED_MODULE_8__["default"]._tryCreateFromDebugData(location_1, clientSideComponentId, properties ? JSON.stringify(properties) : '', sequence, hostProperties ? JSON.stringify(hostProperties) : '');
                            if (customActions) {
                                clientSideCustomActions.push(customActions);
                            }
                        }
                    }
                }
                if (missingManifestIds.length > 0) {
                    this._processMissingManifestsErrors(missingManifestIds, qosMonitor);
                }
                else {
                    qosMonitor.writeSuccess();
                }
            }
            catch (e) {
                this._processQueryParamParseErrors(e, parameterValue, qosMonitor);
            }
        }
        return clientSideCustomActions;
    };
    ApplicationCustomizerLoader.prototype._processMissingManifestsErrors = function (missingManifestIds, qosMonitor) {
        var errorMessage = 'Custom action component ids are specified by query parameters but ' +
            'matching manifests cannot be found.';
        var error = new Error(errorMessage + ' Ids: ' + missingManifestIds.join(', '));
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ApplicationCustomizerLoader._logSource, error, 'parseCustomActionsQueryParameter');
        // NOTE: Normally SPFx code does not use console.error(), but in this scenario we are
        // talking directly to a developer.  They really need to see this string without the
        // truncating/scrubbing that is normally performed by the Dev Dashboard "Trace" tab.
        console.error(error.message);
        qosMonitor.writeExpectedFailure('ManifestNotFound', error);
    };
    ApplicationCustomizerLoader.prototype._processQueryParamParseErrors = function (error, parameterValue, qosMonitor) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ApplicationCustomizerLoader._logSource, new Error('Failed to parse the "customActions" URL query parameter:' + error.message));
        // NOTE: Normally SPFx code does not use console.error(), but in this scenario we are
        // talking directly to a developer.  They really need to see this string without the
        // truncating/scrubbing that is normally performed by the Dev Dashboard "Trace" tab.
        console.error('The "customActions" URL query parameter is improperly formatted: '
            + decodeURIComponent(parameterValue));
        qosMonitor.writeExpectedFailure('ParseFailure', error);
    };
    ApplicationCustomizerLoader._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('ApplicationCustomizerLoader');
    return ApplicationCustomizerLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (ApplicationCustomizerLoader);


/***/ }),

/***/ "S2tz":
/*!********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-error/0.10.2/node_modules/@ms/utilities-error/lib/CustomError.js ***!
  \********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
 * Base class for custom errors.
 * Derive sub-classes from this class to implement errors which support
 * strongly-typed constructors and visible fields.
 *
 * The pattern to extend Error properly is documented here:
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
 */
var CustomError = /** @class */ (function () {
    function CustomError(props) {
        if (props === void 0) { props = {}; }
        // The real error will be returned.
        var error = new Error(props.message || props.innerError && props.innerError.message);
        this.message = error.message;
        this.innerError = props.innerError;
        // Avoid using assign since some platforms (native) do not enumerate prototyped objects.
        for (var key in this) {
            if (Object.prototype.hasOwnProperty.call(this, key)) {
                // @ts-ignore TOO BAD
                error[key] = this[key];
            }
        }
        var customErrorType = Object.getPrototypeOf(this);
        // @ts-ignore
        if (Error.captureStackTrace) {
            // @ts-ignore
            Error.captureStackTrace(error, customErrorType);
        }
        if (Object.setPrototypeOf) {
            // Force the error instance to use the custom prototype.
            // This works on all supported browsers, except PhantomJS.
            Object.setPrototypeOf(error, customErrorType);
            return error;
        }
    }
    return CustomError;
}());
exports.CustomError = CustomError;
// For Error, need to manually extend the built-in type since TypeScript does not emit the necessary output.
if (Object.setPrototypeOf) {
    // This works on all supported browsers, except PhantomJS.
    CustomError.prototype = Object.create(Error.prototype, {
        constructor: {
            value: Error,
            enumerable: false,
            writable: true,
            configurable: true
        }
    });
    Object.setPrototypeOf(CustomError, Error);
}
//# sourceMappingURL=CustomError.js.map

/***/ }),

/***/ "SClb":
/*!**********************************************!*\
  !*** ./lib/navigator/NavigationDataError.js ***!
  \**********************************************/
/*! exports provided: NavigationErrorCode, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationErrorCode", function() { return NavigationErrorCode; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _common_Killswitches__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/Killswitches */ "dQCu");
// Copyright (c) Microsoft. All rights reserved.




/**
 * Web part error codes.
 *
 * @internal
 */
var NavigationErrorCode;
(function (NavigationErrorCode) {
    /**
     * Failure to fetch navigation data.
     */
    NavigationErrorCode[NavigationErrorCode["fetchData"] = 0] = "fetchData";
    /**
     * Failure to parse navigation data.
     */
    NavigationErrorCode[NavigationErrorCode["parseData"] = 1] = "parseData";
    /**
     * Unknown failure
     */
    NavigationErrorCode[NavigationErrorCode["unknown"] = 2] = "unknown";
})(NavigationErrorCode || (NavigationErrorCode = {}));
/**
 * Represents the contract of a Navigation Data Error.
 *
 * @internal
 */
var NavigationDataError = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](NavigationDataError, _super);
    function NavigationDataError(errorCode, errorMessage, innerError, isExpected, errorPayload) {
        if (isExpected === void 0) { isExpected = false; }
        var _this = _super.call(this, NavigationErrorCode[errorCode], errorMessage, errorPayload) || this;
        // Manually set the prototype, as we can no longer extend built-in classes like Error, Array, Map, etc
        // tslint:disable-next-line:max-line-length
        // [https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work](https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work)
        //
        // Note: the prototype must also be set on any classes which extend this one
        _this.__proto__ = NavigationDataError_1.prototype; // tslint:disable-line:no-any
        _this._errorId = errorCode;
        _this.innerError = innerError;
        _this._isExpected = isExpected;
        return _this;
    }
    NavigationDataError_1 = NavigationDataError;
    /**
     * Utility function to create an error response.
     * @param errorCode - Represents the navigation error code.
     * @param innerError - Represents the inner error.
     *
     * @returns An error object.
     */
    NavigationDataError.createNavigationError = function (errorCode, innerError) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Validate"].isNotNullOrUndefined(innerError, 'innerError');
        if (_common_Killswitches__WEBPACK_IMPORTED_MODULE_3__["Killswitches"].isNavigationDataErrorKSActive()) {
            return innerError;
        }
        var isExpected = NavigationDataError_1._isExpectedError(errorCode);
        var errorTemplate = NavigationDataError_1._errorTemplate(errorCode);
        var errorMessage = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Text"].format(errorTemplate, innerError.message);
        return new NavigationDataError_1(errorCode, errorMessage, innerError, isExpected);
    };
    NavigationDataError._isExpectedError = function (errorCode) {
        return errorCode === NavigationErrorCode.parseData;
    };
    NavigationDataError._errorTemplate = function (errorCode) {
        return NavigationDataError_1._errorCodeToTemplateMap[errorCode] || 'Failed to navigate. Error: {0}';
    };
    Object.defineProperty(NavigationDataError.prototype, "id", {
        /**
         * Gets the error Id.
         */
        get: function () {
            return this._errorId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(NavigationDataError.prototype, "category", {
        /**
         * Gets the error category.
         */
        get: function () {
            return 'NavigationDataError';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(NavigationDataError.prototype, "isExpected", {
        /**
         * Gets a value indicating whether the error is expected.
         */
        get: function () {
            return this._isExpected;
        },
        enumerable: true,
        configurable: true
    });
    var NavigationDataError_1;
    NavigationDataError._errorCodeToTemplateMap = new Map([
        [NavigationErrorCode.fetchData, 'Failed to retrieve navigation data. Error: {0}'],
        [NavigationErrorCode.parseData, 'Failed to parse navigation data. Error: {0}']
    ]);
    NavigationDataError = NavigationDataError_1 = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["sealed"]
    ], NavigationDataError);
    return NavigationDataError;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["SPError"]));
/* harmony default export */ __webpack_exports__["default"] = (NavigationDataError);


/***/ }),

/***/ "SE01":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/utilities/CircularBuffer.js ***!
  \*************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var CircularBuffer = /** @class */ (function () {
    function CircularBuffer(size) {
        if (size <= 0) {
            throw new Error('Size must be positive');
        }
        this._size = size;
        this._buffer = new Array(size);
        this._length = 0;
        this._head = -1;
    }
    CircularBuffer.prototype.push = function (item) {
        if (this._length < this._size) {
            this._length++;
        }
        this._head++;
        if (this._head === this._size) {
            this._head = 0;
        }
        this._buffer[this._head] = item;
    };
    CircularBuffer.prototype.popOldest = function () {
        if (this._length === 0) {
            return null;
        }
        var tail = (this._head - this._length + 1 + this._size) % this._size;
        this._length--;
        return this._buffer[tail];
    };
    return CircularBuffer;
}());
exports.CircularBuffer = CircularBuffer;
//# sourceMappingURL=CircularBuffer.js.map

/***/ }),

/***/ "TNAb":
/*!********************************************!*\
  !*** ./lib/navigator/INavigationResult.js ***!
  \********************************************/
/*! exports provided: NavigationOperation, NavigationUnsupportedReason */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationOperation", function() { return NavigationOperation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationUnsupportedReason", function() { return NavigationUnsupportedReason; });
/**
 * Operation that gets executed from a navigation request.
 * This is used by SPFx applications to understand what are their next operations after navigating to a different page.
 *
 * @internal
 */
var NavigationOperation;
(function (NavigationOperation) {
    /**
     * This operation updates the SPFx context but doesn't act on the application.
     * This includes extensions lifecycle operations, changing the PageContext object, etc.
     */
    NavigationOperation[NavigationOperation["UpdateContext"] = 0] = "UpdateContext";
    /**
     * This operation loads a new SPFx application.
     * This implies that the previous application will be disposed.
     */
    NavigationOperation[NavigationOperation["LoadApplication"] = 1] = "LoadApplication";
    /**
     * This operation happens when the URL doesn't map to a SPFx application or the preloaded data is in a corrupted
     * state.
     * The current application is responsible for handling this case.
     * This can mean open the URL in a different tab/window, going to error.aspx, or displaying an error in the console.
     */
    NavigationOperation[NavigationOperation["Unsupported"] = 2] = "Unsupported";
})(NavigationOperation || (NavigationOperation = {}));
/**
 * Specific reasons navigations may be unsupported.
 *
 * @internal
 */
var NavigationUnsupportedReason;
(function (NavigationUnsupportedReason) {
    /**
     * Navigation was unsupported because the target url was not an SPFX application.
     */
    NavigationUnsupportedReason[NavigationUnsupportedReason["NonSPFX"] = 0] = "NonSPFX";
    /**
     * Since our applications aren't fully optimized to cleanup resources
     * we have a cap on the number of transitions before we should trigger
     * a full reload in order to flush the memory.
     */
    NavigationUnsupportedReason[NavigationUnsupportedReason["TransitionsExceeded"] = 1] = "TransitionsExceeded";
    /**
     * The target url points to a valid SPFX app however the locale is different
     * and we need to do a full reload to get scripts in the new locale.
     */
    NavigationUnsupportedReason[NavigationUnsupportedReason["LocaleChange"] = 2] = "LocaleChange";
    /**
     * App to App transitions have not yet been enabled for this user.
     */
    NavigationUnsupportedReason[NavigationUnsupportedReason["AppTransitionNotEnabled"] = 3] = "AppTransitionNotEnabled";
})(NavigationUnsupportedReason || (NavigationUnsupportedReason = {}));


/***/ }),

/***/ "TgkG":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_react-dom@16.8.5/node_modules/@uifabric/utilities/lib/customizations/Customizations.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @uifabric/utilities/customizations/Customizations.js
var pkg = __webpack_require__(/*! @ms/uifabric-styling-bundle */ "fglE");
module.exports = pkg._Utilities;

/***/ }),

/***/ "U3aa":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/web/WebTemplateType.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: WebTemplateType, isTeamSiteLike, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _interfaces_WebTemplateType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../interfaces/WebTemplateType */ "vtqB");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebTemplateType", function() { return _interfaces_WebTemplateType__WEBPACK_IMPORTED_MODULE_0__["WebTemplateType"]; });

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

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

/**
     * DO NOT USE - moved to interfaces for better import location
     * @deprecated as of version 12.15.0
     */


//# sourceMappingURL=WebTemplateType.js.map

/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "Uyjd":
/*!***************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/office-ui-fabric-react/7.59.0_react-dom@16.8.5/node_modules/office-ui-fabric-react/lib/version.js ***!
  \***************************************************************************************************************************************************************************************/
/*! no exports provided */
/***/ (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__(/*! @uifabric/set-version */ "oN+8");
// 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');
//# sourceMappingURL=version.js.map

/***/ }),

/***/ "VkOs":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/cjs.js!C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/postcss-loader/3.0.0/node_modules/postcss-loader/src??postcss!./lib/pageChrome/SPPageChrome.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/runtime/api.js */ "j2/K")(false);
// Module
exports.push([module.i, "body{height:100vh;margin:0;padding:0}.SPPageChrome{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.SPPageChrome.withExternalSuiteNav{height:calc(100% - 50px)}#SuiteNavPlaceHolder{background-color:#333;width:100%;z-index:5}#SuiteNavPlaceHolder:empty{display:none}.SPPageChrome-app,.SPPageChrome-app>div{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.SPPageChromeNoFlexbox-app{position:absolute;right:0;bottom:0;left:0;overflow:visible}.spAppAndPropertyPanelContainer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%}.spAppAndPropertyPanelContainer .SPPageChrome-app{min-width:0}.spAppAndPropertyPanelContainer .spPropertyPaneContainer{-ms-flex-negative:0;flex-shrink:0}.spPropertyPaneContainer{width:0;position:relative;z-index:999}.spPropertyPaneContainerNoFlexbox{top:50px;position:fixed;right:-340px;bottom:0;z-index:999}.spPageContentTransition_8a76ec2e{transition:width 367ms cubic-bezier(.1,.9,.2,1);-webkit-transition:width 367ms cubic-bezier(.1,.9,.2,1)}@media print{#RecommendedItems,.commandBarWrapper,.headerViewClass,div[data-automationid=SimpleFooter],div[data-sp-feature-tag=\"Site header host\"],div[data-sp-feature-tag=Comments],div[data-sp-placeholder=Bottom],div[data-sp-placeholder=Top]{display:none}#SuiteNavPlaceHolder,.ms-HubNav{display:none!important}}", ""]);



/***/ }),

/***/ "VytQ":
/*!********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/base/GetDataError.js ***!
  \********************************************************************************************************************************************************************************************/
/*! exports provided: GetDataError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetDataError", function() { return GetDataError; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/utilities-error/lib/ApiError */ "PcWP");
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_1__);


var GetDataError = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GetDataError, _super);
    function GetDataError(props) {
        var _this = this;
        var _a = props.errorData, _b = _a === void 0 ? {
            status: 0,
            code: ''
        } : _a, _c = _b.message, errorDataMessage = _c === void 0 ? undefined : _c, _d = _b.correlationId, correlationId = _d === void 0 ? undefined : _d, _e = _b.code, code = _e === void 0 ? undefined : _e, errorData = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_b, ["message", "correlationId", "code"]);
        var message = typeof errorDataMessage === 'object' ?
            errorDataMessage ?
                typeof errorDataMessage.value === 'string' ?
                    // Might be a localized error message structure.
                    errorDataMessage.value :
                    JSON.stringify(errorDataMessage) :
                "" + errorDataMessage :
            errorDataMessage;
        var finalProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ correlationId: correlationId,
            code: code,
            message: message }, props);
        _this = _super.call(this, finalProps) || this;
        _this.errorData = props.errorData;
        // Copy over all props from the `errorData`, so that this `Error` instance
        // appears to implement the same contract.
        for (var _i = 0, _f = Object.keys(errorData); _i < _f.length; _i++) {
            var key = _f[_i];
            _this[key] = errorData[key];
        }
        return _this;
    }
    return GetDataError;
}(_ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_1__["ApiError"]));

//# sourceMappingURL=GetDataError.js.map

/***/ }),

/***/ "W3Vu":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Callout.styles.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: CalloutContentStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalloutContentStyles", function() { return CalloutContentStyles; });
var CalloutContentStyles = function (props) {
    var theme = props.theme;
    var palette = theme.palette;
    return {
        root: {
            border: "1px solid " + palette.neutralLight
        }
    };
};
//# sourceMappingURL=Callout.styles.js.map

/***/ }),

/***/ "WA4G":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/killswitch/Killswitch.js ***!
  \*****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/killswitch/Killswitch.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.Killswitch = pkg.Killswitch;
module.exports.getKillSwitch = pkg.getKillSwitch;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "X+PM":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_X_PM__;

/***/ }),

/***/ "XNgR":
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/DetailsColumn.styles.js ***!
  \***********************************************************************************************************************************************************************************************************/
/*! exports provided: DetailsColumnStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnStyles", function() { return DetailsColumnStyles; });
var DetailsColumnStyles = function (props) {
    var theme = props.theme;
    return {
        root: {
            height: 32
        },
        cellName: {
            fontWeight: theme.fonts.small.fontWeight,
            fontSize: theme.fonts.small.fontSize
        },
        filterChevron: {
            fontSize: theme.fonts.small.fontSize,
            paddingLeft: 4
        }
    };
};
//# sourceMappingURL=DetailsColumn.styles.js.map

/***/ }),

/***/ "Y/uW":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/ThemeInitializer.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: flushStyles, ThemeInitializer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeInitializer", function() { return ThemeInitializer; });
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/Features */ "Y2fW");
/* harmony import */ var _ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/load-themed-styles */ "jOlS");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_1__);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flushStyles", function() { return _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_1__["flush"]; });

/* harmony import */ var _ThemeProviderFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ThemeProviderFactory */ "gdPU");
/* harmony import */ var _uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uifabric/styling/lib/styles/theme */ "9259");
/* harmony import */ var _uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _FabricCustomizations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FabricCustomizations */ "L9tx");
/* harmony import */ var _ThemeUtilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ThemeUtilities */ "ApOT");
// OneDrive:IgnoreCodeCoverage







var AsyncLoadStyles = { ODB: 141, ODC: null, Fallback: false };
function setFabricConfig() {
    var fabricConfig = window['FabricConfig'] = window['FabricConfig'] || {};
    fabricConfig.fontBaseUrl = '';
}
/**
 * Chooses the appropriate method of loading theme data for the current page.
 * As soon as the theme data is available, it will be set via the loadTheme
 * method of load-themed-styles.
 */
var ThemeInitializer = /** @class */ (function () {
    function ThemeInitializer() {
    }
    /**
     * Uses context information to load the appropriate theme.
     */
    ThemeInitializer.initializeTheme = function (injectedProviders, pageContext, forceUpdate) {
        window["__loadTheme"] = _uifabric_styling_lib_styles_theme__WEBPACK_IMPORTED_MODULE_3__["loadTheme"]; // so we can access it in console for testing purposes
        setFabricConfig();
        var _spModuleLink = window['_spModuleLink'];
        if (_ms_odsp_utilities_lib_features_Features__WEBPACK_IMPORTED_MODULE_0___default.a.isFeatureEnabled(AsyncLoadStyles) &&
            _spModuleLink && _spModuleLink.libraries && _spModuleLink.libraries.length > 0) {
            // since we have css concatenation now, we only need async loadStyles() for libmode, which is not covered by css concatenations
            Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_1__["configureRunMode"])(1 /* async */);
        }
        // Apply Fabric component Customizations, which are independent of the theme
        Object(_FabricCustomizations__WEBPACK_IMPORTED_MODULE_4__["applyPltFabricCustomizations"])();
        // If there is a themeProvider, request and load the theme.
        var themeProvider = Object(_ThemeProviderFactory__WEBPACK_IMPORTED_MODULE_2__["getThemeProvider"])(injectedProviders, pageContext);
        if (themeProvider) {
            return themeProvider.loadFullFormattedThemeData(forceUpdate).then(function (value) {
                var theme = value || {};
                Object(_ThemeUtilities__WEBPACK_IMPORTED_MODULE_5__["spLoadTheme"])(theme);
                return value;
            });
        }
        else {
            var theme = {};
            Object(_ThemeUtilities__WEBPACK_IMPORTED_MODULE_5__["spLoadTheme"])(theme);
        }
    };
    return ThemeInitializer;
}());

//# sourceMappingURL=ThemeInitializer.js.map

/***/ }),

/***/ "Y2fW":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/features/Features.js ***!
  \*************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/features/Features.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.Features;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "YBzx":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/styleConstants.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: MinimumScreenSelector, MediumScreenSelector */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MinimumScreenSelector", function() { return MinimumScreenSelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MediumScreenSelector", function() { return MediumScreenSelector; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @uifabric/styling */ "jQzw");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__);

var MinimumScreenSelector = Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["getScreenSelector"])(0, _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxSmall"]);
var MediumScreenSelector = Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["getScreenSelector"])(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinMedium"], _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxMedium"]);
//# sourceMappingURL=styleConstants.js.map

/***/ }),

/***/ "Yr1X":
/*!*********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/events/Verbose.event.js ***!
  \*********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var SingleEventBase_1 = __webpack_require__(/*! ../SingleEventBase */ "8WDM");
var Trace_event_1 = __webpack_require__(/*! ./Trace.event */ "Crvl");
exports.Verbose = SingleEventBase_1.createSingleEvent({
    eventName: 'Verbose,Trace,',
    shortEventName: 'Verbose',
    requiresParent: false
}, {
    name: {
        isKey: true,
        type: 1 /* String */
    }
}, Trace_event_1.Trace);
//# sourceMappingURL=Verbose.event.js.map

/***/ }),

/***/ "ZFc5":
/*!***********************************************!*\
  !*** external "@microsoft/sp-extension-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ZFc5__;

/***/ }),

/***/ "Zovb":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Label.styles.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: LabelStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelStyles", function() { return LabelStyles; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @uifabric/styling */ "jQzw");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__);

var LabelStyles = {
    root: {
        fontWeight: _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular
    }
};
//# sourceMappingURL=Label.styles.js.map

/***/ }),

/***/ "bTkC":
/*!*********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/base/DataRequestor.js ***!
  \*********************************************************************************************************************************************************************************************/
/*! exports provided: isQosEndSchemaOverride, DataRequestor, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isQosEndSchemaOverride", function() { return isQosEndSchemaOverride; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataRequestor", function() { return DataRequestor; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Promise */ "MS/P");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_odsp_utilities_lib_async_Retry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Retry */ "q/xN");
/* harmony import */ var _ms_odsp_utilities_lib_async_Retry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Retry__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Api_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/events/Api.event */ "2mC7");
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Api_event__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_events_Api_event__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Engagement_event__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/events/Engagement.event */ "yEhF");
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Engagement_event__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_events_Engagement_event__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/events/Qos.event */ "/TBc");
/* harmony import */ var _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/rumone/RUMOneLogger */ "H6KY");
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ms/utilities-error/lib/ApiError */ "PcWP");
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ms_odsp_utilities_lib_uri_SimpleUri__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ms/odsp-utilities/lib/uri/SimpleUri */ "DYAW");
/* harmony import */ var _ms_odsp_utilities_lib_uri_SimpleUri__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_uri_SimpleUri__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_RequestDurationLoggingHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/RequestDurationLoggingHelper */ "5BLP");
/* harmony import */ var _ms_odsp_utilities_lib_logging_RequestDurationLoggingHelper__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_RequestDurationLoggingHelper__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _ServerConnection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ServerConnection */ "mUIx");
/* harmony import */ var _GetDataError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./GetDataError */ "VytQ");












var currentWindow = typeof window !== 'undefined' ? window : undefined;
var performance = currentWindow && currentWindow.performance;
function isQosEndSchemaOverride(item) {
    return typeof item === 'object';
}
var DataRequestor = /** @class */ (function () {
    function DataRequestor(params, dependencies) {
        this._pageContext = dependencies ? dependencies.pageContext : params.pageContext;
        this._qosName = params.qosName;
        this._apiEvent = dependencies && dependencies.apiEvent || _ms_odsp_utilities_lib_logging_events_Api_event__WEBPACK_IMPORTED_MODULE_3___default.a;
        this._engagement = dependencies && dependencies.engagement || _ms_odsp_utilities_lib_logging_events_Engagement_event__WEBPACK_IMPORTED_MODULE_4__["Engagement"];
        this._normalizeErrors = !!params.normalizeErrors;
    }
    DataRequestor.parseJSON = function (responseText) {
        return responseText && JSON.parse(responseText) || undefined;
    };
    DataRequestor.prototype.getData = function (options) {
        var _this = this;
        var url = options.url, _a = options.parseResponse, parseResponse = _a === void 0 ? DataRequestor.parseJSON : _a, qosExtraData = options.qosExtraData, qosHandler = options.qosHandler, successQosHandler = options.successQosHandler, customQosLogger = options.customQosLogger, _b = options.additionalPostData, additionalPostData = _b === void 0 ? '' : _b, contentType = options.contentType, _c = options.method, method = _c === void 0 ? 'POST' : _c, _d = options.maxRetries, maxRetries = _d === void 0 ? 0 : _d, responseType = options.responseType, onUploadProgress = options.onUploadProgress, timeout = options.timeout, specifiedAuthToken = options.authToken, _e = options.noTimeoutInLastRetry, noTimeoutInLastRetry = _e === void 0 ? false : _e;
        var additionalHeaders = options.additionalHeaders, _f = options.crossSiteCollectionCall, crossSiteCollectionCall = _f === void 0 ? false : _f, _g = options.noRedirect, noRedirect = _g === void 0 ? false : _g, _h = options.needsRequestDigest, needsRequestDigest = _h === void 0 ? true : _h;
        var shouldRetry = true;
        var pageContext = this._pageContext;
        var getDataPromise = function (authToken) {
            // Add Authorization header to request if authToken exists on _spPageContext
            // and an Authorization header doesn't already exist on the request.
            if (authToken) {
                var authorizationHeaderValue = "Bearer " + authToken;
                // Add Authorization header if it doesn't exist already.
                if (additionalHeaders) {
                    var authorizationHeaderSpecified = false;
                    for (var headerKey in additionalHeaders) {
                        if (headerKey) {
                            if (headerKey.toLowerCase() === 'authorization') {
                                authorizationHeaderSpecified = true;
                            }
                        }
                    }
                    if (!authorizationHeaderSpecified) {
                        additionalHeaders['Authorization'] = authorizationHeaderValue;
                    }
                }
                else {
                    additionalHeaders = {
                        'Authorization': authorizationHeaderValue
                    };
                }
                // Since Authorization header is present, the request is cross-origin.
                crossSiteCollectionCall = true;
                needsRequestDigest = false;
                noRedirect = true;
            }
            var serverConnection = new _ServerConnection__WEBPACK_IMPORTED_MODULE_10__["default"](tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (pageContext ? {
                webServerRelativeUrl: pageContext.webServerRelativeUrl,
                webAbsoluteUrl: crossSiteCollectionCall ? pageContext.webAbsoluteUrl : undefined,
                formDigest: {
                    // Pull current digest state from the page.
                    // This helps initial requests avoid extra server calls.
                    // Unit tests will need to spoof this in order to avoid the need to mock the digest response.
                    serverTime: pageContext.serverTime,
                    updateFormDigestPageLoaded: pageContext.updateFormDigestPageLoaded,
                    formDigestValue: pageContext.formDigestValue,
                    formDigestTimeoutSeconds: pageContext.formDigestTimeoutSeconds
                }
            } : {}), { needsRequestDigest: needsRequestDigest, engagement: _this._engagement, operationName: _this._qosName }));
            var qosNames = [];
            if (_this._qosName) {
                qosNames.push(_this._qosName);
            }
            if (options.qosName) {
                qosNames.push(options.qosName);
            }
            var qosName = qosNames.join('.');
            var logCustomQos = function (qosData) {
                if (customQosLogger) {
                    customQosLogger(qosData);
                }
            };
            var currentOrigin = currentWindow && currentWindow.location && new _ms_odsp_utilities_lib_uri_SimpleUri__WEBPACK_IMPORTED_MODULE_8__["SimpleUri"](currentWindow.location.href).authority;
            var targetOrigin = new _ms_odsp_utilities_lib_uri_SimpleUri__WEBPACK_IMPORTED_MODULE_8__["SimpleUri"](url).authority;
            var isCanceled;
            var lastApiEvent;
            var serviceWorkerDataSource;
            /* tslint:disable: no-any */
            var onExecute = function (complete, error) {
                /* tslint:enable: no-any */
                // forward declaration to shut up linter
                var doGetData;
                var onDataSuccess = function (apiEvent, requestPerformanceStartTime) { return function (serverData) {
                    var data;
                    var response = serverData.getResponseText();
                    serviceWorkerDataSource = serverData.getServiceWorkerDataSourceHeader();
                    var performanceMetrics = Object(_ms_odsp_utilities_lib_logging_RequestDurationLoggingHelper__WEBPACK_IMPORTED_MODULE_9__["getRequestEntryDurationMetrics"])(url, requestPerformanceStartTime);
                    var extraData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (qosExtraData || {}), { needsRequestDigest: needsRequestDigest, hasAuthToken: !!authToken, isCrossOrigin: !!currentOrigin && currentOrigin !== targetOrigin, CorrelationId: serverData.getCorrelationId(), HttpStatus: serverData.getStatus(), serviceWorkerDataSource: serviceWorkerDataSource || undefined, rawRequestDuration: performanceMetrics.duration, performanceEntry: JSON.stringify(performanceMetrics), serviceWorkerFetchInfo: serverData.getServiceWorkerFetchInfoFromHeader() || undefined });
                    var parsedResponse = false;
                    try {
                        var customQos = void 0;
                        if (isBlobResponse(responseType, response)) {
                            data = response;
                        }
                        else {
                            // This line could throw if the response does not have the expected data type.
                            // For example, there is at least one handler (SpoSuiteLinks.ashx) that will return
                            // an HTML error page rather than the expected JSON on error. We should count that case
                            // as a failure even though *something* was successfully returned.
                            data = parseResponse(response, serverData);
                            if (successQosHandler) {
                                var customQosResult = successQosHandler(data);
                                customQos = typeof customQosResult === 'string' ? {
                                    resultCode: customQosResult
                                } : customQosResult;
                            }
                        }
                        parsedResponse = true;
                        var qosData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ resultType: _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].Success, extraData: extraData }, (customQos || {}));
                        apiEvent.end(qosData);
                        logCustomQos(qosData);
                    }
                    catch (ex) {
                        // The response did not parse properly.
                        var qosData = {
                            resultType: _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].Failure,
                            resultCode: 'InvalidJSON',
                            error: (typeof ex === 'object' ? JSON.stringify(ex) : ex),
                            extraData: extraData
                        };
                        apiEvent.end(qosData);
                        logCustomQos(qosData);
                        // let the caller know there was an error in parsing the data
                        error();
                    }
                    // pass the response to the caller
                    if (parsedResponse) {
                        try {
                            complete(data);
                        }
                        catch (ex) {
                            // the caller failed to handle the data
                            // no-op
                        }
                    }
                    serverConnection = undefined;
                }; };
                var onError = function (apiEvent, requestPerformanceStartTime) { return function (serverData, requestError) {
                    var performanceMetrics = Object(_ms_odsp_utilities_lib_logging_RequestDurationLoggingHelper__WEBPACK_IMPORTED_MODULE_9__["getRequestEntryDurationMetrics"])(url, requestPerformanceStartTime);
                    var extraData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (qosExtraData || {}), { needsRequestDigest: needsRequestDigest, hasAuthToken: !!authToken, isCrossOrigin: !!currentOrigin && currentOrigin !== targetOrigin, rawRequestDuration: performanceMetrics.duration, performanceEntry: JSON.stringify(performanceMetrics) });
                    if (!serverData) {
                        var qosData = void 0;
                        if (isCanceled) {
                            // serverData will be undefined if the request was aborted
                            qosData = {
                                resultType: _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure,
                                resultCode: 'RequestAborted',
                                extraData: extraData
                            };
                        }
                        else {
                            var code = 'Unknown';
                            var isExpected = true;
                            var status_1 = 0;
                            if (requestError) {
                                if (requestError instanceof _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_7__["ApiError"]) {
                                    code = requestError.code;
                                    isExpected = requestError.isExpected;
                                    status_1 = -1;
                                }
                            }
                            var errorData = {
                                status: status_1,
                                code: ''
                            };
                            // Request completed, but did not return data or a useful status code. This can happen for any number of reasons:
                            // CORS Rejection (we could make a guess about this by comparing url origins)
                            // Request blocked by client (e.g. extension)
                            // Request blocked by firewall
                            qosData = {
                                resultType: isExpected ?
                                    _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure :
                                    _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].Failure,
                                resultCode: code,
                                extraData: extraData
                            };
                            // Ensure that Promises that wrap the data request always complete.
                            error(_this._normalizeErrors ? new _GetDataError__WEBPACK_IMPORTED_MODULE_11__["GetDataError"]({
                                errorData: errorData,
                                innerError: requestError
                            }) : errorData);
                        }
                        apiEvent.end(qosData);
                        logCustomQos(qosData);
                        return;
                    }
                    var correlationId = serverData.getCorrelationId();
                    var groupThrottle = serverData.getGroupThrottle();
                    var MSCorrelationVector = serverData.getMSCorrelationVector();
                    var status = serverData.getStatus();
                    extraData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, extraData, { CorrelationId: correlationId, HttpStatus: status, GroupThrottle: groupThrottle, MSCorrelationVector: MSCorrelationVector });
                    var resultType = _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].Failure;
                    var isOffline = typeof navigator !== 'undefined' && navigator.onLine === false;
                    if (status === 403 ||
                        status === 404 ||
                        status === 429 ||
                        status === 503 ||
                        status === -1 ||
                        (status === 0 && isOffline)) {
                        // no need to retry authentication errors...
                        // no need to retry document not found errors...
                        // no need to retry resource throttling errors... (we need to back away from it. 503 is SQL throttling)
                        // no need to retry if the request was missing parameters
                        // no need to retry if we are offline
                        shouldRetry = false;
                        resultType = _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure;
                    }
                    var parseQosError = function (response) {
                        var errorData = undefined;
                        if (typeof response === 'object' && typeof response.status === 'number') {
                            // Test to see if the response is already an IErrorData
                            errorData = response;
                        }
                        else if (typeof response === 'string') {
                            var parsedData = undefined;
                            try {
                                parsedData = JSON.parse(response);
                            }
                            catch (ex) {
                                // np-op
                            }
                            if (parsedData) {
                                if (typeof parsedData.error === 'string') {
                                    if (parsedData.error_description) {
                                        errorData = {
                                            code: "-1," + parsedData.error,
                                            message: parsedData.error_description
                                        };
                                    }
                                    else {
                                        errorData = {
                                            message: parsedData.error
                                        };
                                    }
                                }
                                else {
                                    errorData = (parsedData.error || parsedData['odata.error'] || { responseData: parsedData });
                                }
                            }
                        }
                        errorData = (errorData || {});
                        errorData.status = status;
                        var errorWithRedirect = errorData;
                        var payloadRedirectUrl = errorWithRedirect['@error.redirectUrl'];
                        var redirectUrl = serverData.getRedirectUrl() || payloadRedirectUrl;
                        if (redirectUrl) {
                            // If there is a process to handle the error, then it's expected.
                            resultType = _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure;
                        }
                        errorData.redirectUrl = redirectUrl;
                        if (correlationId) {
                            errorData.correlationId = correlationId;
                        }
                        if (groupThrottle) {
                            errorData.groupThrottle = groupThrottle;
                        }
                        var resultCode = "[" + status.toString() + "] " + (errorData.code || 'Unknown');
                        var qosEndOverride;
                        if (qosHandler) {
                            var qosHandlerResult = qosHandler(errorData);
                            if (!isQosEndSchemaOverride(qosHandlerResult)) {
                                resultCode = qosHandlerResult;
                            }
                            else {
                                qosEndOverride = qosHandlerResult;
                            }
                            if (status === 500 && (resultCode === 'DefaultDoclibNotFound' || resultCode === 'PrefetchWebMismatch')) {
                                shouldRetry = false;
                                resultType = _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure;
                            }
                        }
                        var errorMessage = JSON.stringify(errorData);
                        var qosData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ resultType: resultType, error: errorMessage, resultCode: resultCode, extraData: extraData }, (qosEndOverride || {}));
                        apiEvent.end(qosData);
                        logCustomQos(qosData);
                        error(_this._normalizeErrors ? new _GetDataError__WEBPACK_IMPORTED_MODULE_11__["GetDataError"](tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ errorData: errorData }, (resultType === _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure ? {
                            isExpected: true
                        } : {}))) : errorData);
                    };
                    var responseType = serverData.getResponseType();
                    if (!responseType || responseType === 'text') {
                        var responseText = serverData.getResponseText();
                        parseQosError(responseText);
                    }
                    else {
                        serverData.parseError().then(parseQosError);
                    }
                }; };
                doGetData = function () {
                    var apiEvent = lastApiEvent = new _this._apiEvent({
                        url: url,
                        name: qosName
                    });
                    var requestPerformanceStartTime = performance && performance.now();
                    serverConnection.getServerDataFromUrl({
                        url: url,
                        successCallback: onDataSuccess(apiEvent, requestPerformanceStartTime),
                        failureCallback: onError(apiEvent, requestPerformanceStartTime),
                        uploadProgressCallback: onUploadProgress,
                        additionalPostData: additionalPostData,
                        method: method,
                        additionalHeaders: additionalHeaders,
                        contentType: contentType,
                        withCredentials: authToken ? false : undefined,
                        noRedirect: noRedirect,
                        responseType: responseType,
                        needsRequestDigest: needsRequestDigest
                    });
                };
                doGetData();
            };
            var rumOne = _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_6__["RUMOneLogger"].getRUMOneLogger();
            var apiStartTime = Date.now();
            if (rumOne) {
                if (!Boolean(rumOne.readTempData('appDataFetchStart'))) {
                    // Record the App DataFetch start before the first API call
                    rumOne.saveTempData('appDataFetchStart', apiStartTime);
                }
            }
            return createPromise({
                timeout: timeout,
                onExecute: onExecute,
                maxRetries: maxRetries,
                noTimeoutInLastRetry: noTimeoutInLastRetry,
                canRetry: function () { return shouldRetry; },
                onCancel: function (isFinal) {
                    isCanceled = true;
                    if (serverConnection) {
                        serverConnection.abort();
                        if (isFinal) {
                            // do not dispose serverConnection when data requestor is in the middle of retries.
                            serverConnection.dispose();
                        }
                    }
                }
            }).then(function (result) {
                if (serverConnection) {
                    serverConnection.dispose();
                }
                return result;
            }, function (error) {
                if (serverConnection) {
                    serverConnection.dispose();
                }
                if (!lastApiEvent.endTime && _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default.a.isCanceled(error)) {
                    // If we haven't fired the end event of the latest api event, then fire it now
                    lastApiEvent.end({
                        resultCode: 'PromiseCanceled',
                        resultType: _ms_odsp_utilities_lib_logging_events_Qos_event__WEBPACK_IMPORTED_MODULE_5__["ResultTypeEnum"].ExpectedFailure
                    });
                }
                return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default.a.reject(error);
            });
        };
        return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default.a.resolve(specifiedAuthToken ||
            (pageContext && (pageContext.getAuthToken && pageContext.getAuthToken() ||
                pageContext.authToken))).then(getDataPromise);
    };
    return DataRequestor;
}());

function createPromise(props) {
    var onExecute = props.onExecute, onCancel = props.onCancel, timeout = props.timeout, canRetry = props.canRetry, noTimeoutInLastRetry = props.noTimeoutInLastRetry;
    var numRetries = 0;
    var maxRetries = Math.max(props.maxRetries, 0);
    var promise;
    var createTimeoutPromise = function () {
        var promise = new _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default.a(onExecute, function () {
            onCancel(numRetries >= maxRetries || !canRetry());
        });
        // when it is the last retry and noTimeoutInLastRetry is set to true, do not set timeout to allow calls to finish,
        // we at least can get data no matter how slow
        if (timeout && (!noTimeoutInLastRetry || numRetries < maxRetries)) {
            return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_1___default.a.timeout(timeout, promise);
        }
        return promise;
    };
    if (numRetries < maxRetries) { // retry promise
        promise = _ms_odsp_utilities_lib_async_Retry__WEBPACK_IMPORTED_MODULE_2___default()({
            canRetry: canRetry,
            retries: maxRetries,
            callback: createTimeoutPromise,
            beforeRetry: function () {
                numRetries++;
            }
        });
    }
    else {
        promise = createTimeoutPromise();
    }
    return promise;
}
function isBlobResponse(responseType, response) {
    return responseType === 'blob' && response && typeof response === 'object';
}
/* harmony default export */ __webpack_exports__["default"] = (DataRequestor);
//# sourceMappingURL=DataRequestor.js.map

/***/ }),

/***/ "cDcd":
/*!************************!*\
  !*** external "react" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_cDcd__;

/***/ }),

/***/ "dL3a":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/theming/spList/WebThemeDataSource.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _interfaces_ISpPageContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../interfaces/ISpPageContext */ "ePvV");
/* harmony import */ var _web_WebTemplateType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../web/WebTemplateType */ "U3aa");
/* harmony import */ var _base_DataRequestor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../base/DataRequestor */ "bTkC");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Promise */ "MS/P");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ms_odsp_utilities_lib_theming_FabricTheming__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/FabricTheming */ "g/d6");
/* harmony import */ var _ms_odsp_utilities_lib_theming_FabricTheming__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_FabricTheming__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/RgbaColor */ "w/WL");
/* harmony import */ var _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _ms_odsp_utilities_lib_theming_WebTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/WebTheme */ "wCO9");
/* harmony import */ var _ms_odsp_utilities_lib_theming_WebTheme__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_WebTheme__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ms/odsp-utilities/lib/killswitch/Killswitch */ "WA4G");
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ms/odsp-utilities/lib/features/FeatureOverrides */ "6TYi");
/* harmony import */ var _ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _providers_theming_FluentFeatures__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../providers/theming/FluentFeatures */ "1/3F");
// OneDrive:IgnoreCodeCoverage










var DEFAULT_THEME_COLOR = (!_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__["Killswitch"].isActivated('a020a308-99f2-4254-96f6-b7098ed595ab', '04/05/2019', 'Allow null groupColor')) ?
    (_ms_odsp_utilities_lib_features_FeatureOverrides__WEBPACK_IMPORTED_MODULE_8___default.a.isFeatureEnabled({ ODB: _providers_theming_FluentFeatures__WEBPACK_IMPORTED_MODULE_9__["isOneDrive"] ? -1546 : 1546 /* TealifySP */, ODC: null, Fallback: false }) ? "#03787c" : '#0078d4') : '';
/**
 * Data source to load the theme data of the context web.
 */
var WebThemeDataSource = /** @class */ (function () {
    function WebThemeDataSource(pageContext) {
        this._pageContext = pageContext;
        this._dataRequestor = new _base_DataRequestor__WEBPACK_IMPORTED_MODULE_2__["DataRequestor"]({ qosName: 'WebThemeDataSource' }, { pageContext: pageContext });
    }
    /**
     * Gets a token which can be used to determine whether cached theme data is still valid.
     */
    WebThemeDataSource.prototype.getCacheToken = function () {
        // Token to let us know whether the cached theme data is relevant to the site.
        // If there is no explicit theme set, we will use the default themeColor of the site.
        var cacheToken = '';
        var pageContext = this._pageContext;
        // Return the themedCssFolderUrl instead of the themeCacheToken, since
        // we do not depend on the web or its version. Those would be needed if
        // we required foreground-image theming rules, as in classic theming.
        if (pageContext) {
            // If themedCssFolderUrl is null or empty, there is no web theme.
            // But if groupColor is set, we can extend that to a theme for the page.
            var webTemplate = Number(pageContext.webTemplate);
            var webColor = webTemplate !== _web_WebTemplateType__WEBPACK_IMPORTED_MODULE_1__["default"].mySite && webTemplate !== _web_WebTemplateType__WEBPACK_IMPORTED_MODULE_1__["default"].mySiteHost ?
                pageContext.groupColor : DEFAULT_THEME_COLOR;
            cacheToken = pageContext.themedCssFolderUrl || webColor;
        }
        return cacheToken;
    };
    /**
     * Returns a promise which provides the theme data for the web.
     * @param {boolean} forceUpdate If true, will return a new Promise with fresh data.
     */
    WebThemeDataSource.prototype.loadTheme = function (forceUpdate) {
        if (!forceUpdate && this._dataPromise) {
            return this._dataPromise;
        }
        if (!this.getCacheToken()) {
            // Return an undefined IThemeData to indicate no theme.
            return this._dataPromise = _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3___default.a.resolve();
        }
        // If a theme was set on the web, load the theme from the server.
        // Otherwise, generate a Fabric theme from the default color of the web.
        this._dataPromise = this._pageContext.themedCssFolderUrl ?
            this.loadServerTheme() : this.loadGeneratedTheme();
        return this._dataPromise;
    };
    WebThemeDataSource.prototype.needsRequestDigest = function (url) {
        return false;
    };
    WebThemeDataSource.prototype.loadGeneratedTheme = function () {
        var htmlThemeColor = this._pageContext.groupColor || DEFAULT_THEME_COLOR;
        var rgbaThemeColor = _ms_odsp_utilities_lib_theming_RgbaColor__WEBPACK_IMPORTED_MODULE_5___default.a.fromHtmlColor(htmlThemeColor);
        if (rgbaThemeColor) {
            var fabTheme = {
                backgroundImageUri: null,
                cacheToken: htmlThemeColor,
                isDefault: false,
                isInverted: false,
                palette: _ms_odsp_utilities_lib_theming_FabricTheming__WEBPACK_IMPORTED_MODULE_4___default.a.generateFabricColors(rgbaThemeColor),
                version: "1"
            };
            return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(fabTheme);
        }
        else {
            // Return no theme to indicate default theme values should be used.
            return _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_3___default.a.resolve();
        }
    };
    WebThemeDataSource.prototype.loadServerTheme = function () {
        var _this = this;
        var webUrl = Object(_interfaces_ISpPageContext__WEBPACK_IMPORTED_MODULE_0__["getSafeWebServerRelativeUrl"])(this._pageContext);
        var cultureName = this._pageContext.currentUICultureName;
        var endpointUrl = _ms_odsp_utilities_lib_theming_WebTheme__WEBPACK_IMPORTED_MODULE_6___default.a.makeWebThemeRestUrl(webUrl, cultureName);
        var parseResponse = function (responseText) {
            // This could throw if the handler returns an HTML error page or invalid JSON.
            // DataRequestor will count that as an error and call the error callback.
            _this._data = _ms_odsp_utilities_lib_theming_WebTheme__WEBPACK_IMPORTED_MODULE_6___default.a.processWebThemeRestResponse(responseText);
            return _this._data;
        };
        var dataPromise = this._dataRequestor.getData({
            url: endpointUrl,
            parseResponse: parseResponse,
            qosName: 'WebThemeDataSource.LoadData',
            method: "GET"
        });
        dataPromise.done(null, function () {
            // Remove reference to promise on error.
            _this._dataPromise = null;
        });
        return dataPromise;
    };
    return WebThemeDataSource;
}());
/* harmony default export */ __webpack_exports__["default"] = (WebThemeDataSource);
//# sourceMappingURL=WebThemeDataSource.js.map

/***/ }),

/***/ "dQCu":
/*!************************************!*\
  !*** ./lib/common/Killswitches.js ***!
  \************************************/
/*! exports provided: Killswitches */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Killswitches", function() { return Killswitches; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

var Killswitches = /** @class */ (function () {
    function Killswitches() {
    }
    /**
     * Whether to allow apps to override default ThemeProvider when navigating
     */
    Killswitches.themeProviderOverrideKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('6a046c32-0f63-4e65-8980-cdce9e72a3ca'), '03/13/2019', 'Allow apps to override the default theme provider');
    };
    /**
     * Gets a value indicating whether in-place navigation killswitch is activated
     */
    Killswitches.isInplaceNavigationKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('021d49fb-ac33-484c-aa16-ccc1ea76bb26'), '03/06/2019', 'Support in-place navigation between applications');
    };
    /**
     * Gets a value indicating whether navigation data error killswitch is activated
     */
    Killswitches.isNavigationDataErrorKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('c6fd1a34-d63b-45a5-a5be-f6d768c9fb6e'), '03/04/2019', 'Raise navigation data error');
    };
    /**
     * Indicates whether the kill switch for polyfilling the theme's effects for OUFR 5 or below
     * is activated or not.
     */
    Killswitches.isPolyFillThemeEffectsKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('4fd05ab9-d901-495e-8cd8-960a3e6d97e8'), '03/21/2019', 'Polyfill theme effects for OUFR 5 or below');
    };
    /** Indicates whether or not the kill switch to disable having preallocated placeholders
     * for application customizers.
     */
    Killswitches.isPreallocatedPlaceholdersforApplicationCustomizersKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('1c3df98e-4897-4682-87f1-f3eac5f9c71b'), '08/29/2019', 'Disable preallocated placeholders for application customizers');
    };
    /** Indicates whether or not the kill switch to clear client side custom actions
     * is activated.
     */
    Killswitches.isClearClientSideCustomActionsKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('4e9a080e-fd38-4803-b45c-1786fd9c92d4'), '09/12/2019', 'ClearClientSideCustomActions');
    };
    /** Indicates whether or not the kill switch to add extensions init perf marker
    * is activated.
    */
    Killswitches.isAddExtensionsInitPerfMarkerKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('d5981877-9349-4048-be73-c26f2b69df96'), '11/08/2019', 'Add extensions init perf marker');
    };
    return Killswitches;
}());



/***/ }),

/***/ "ePvV":
/*!****************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/interfaces/ISpPageContext.js ***!
  \****************************************************************************************************************************************************************************************/
/*! exports provided: SearchBoxInNavBarType, SearchScopeType, SPWebPropertyFlags2, DEFAULT_LOGO_URL, getServerUrl, getSafeWebServerRelativeUrl, isGroupWebContext, isModernTemplate */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchBoxInNavBarType", function() { return SearchBoxInNavBarType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchScopeType", function() { return SearchScopeType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPWebPropertyFlags2", function() { return SPWebPropertyFlags2; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_LOGO_URL", function() { return DEFAULT_LOGO_URL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getServerUrl", function() { return getServerUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSafeWebServerRelativeUrl", function() { return getSafeWebServerRelativeUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isGroupWebContext", function() { return isGroupWebContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isModernTemplate", function() { return isModernTemplate; });
/**
 * Search box in nav bar
 */
var SearchBoxInNavBarType;
(function (SearchBoxInNavBarType) {
    /** Default behavior will be AllPages */
    SearchBoxInNavBarType[SearchBoxInNavBarType["Default"] = 0] = "Default";
    /** Display search box in nav bar for all pages */
    SearchBoxInNavBarType[SearchBoxInNavBarType["AllPages"] = 1] = "AllPages";
    /** Display search box in nav bar for modern pages only */
    SearchBoxInNavBarType[SearchBoxInNavBarType["ModernOnly"] = 2] = "ModernOnly";
    /** Do not display search box in nav bar */
    SearchBoxInNavBarType[SearchBoxInNavBarType["Hidden"] = 3] = "Hidden";
})(SearchBoxInNavBarType || (SearchBoxInNavBarType = {}));
/**
 * Search box search scope
 * When the value is Default, it follows the existing search scope rule.
 * For example, hub site has hub scope, non-hub site has site scope.
 */
var SearchScopeType;
(function (SearchScopeType) {
    SearchScopeType[SearchScopeType["Default"] = 0] = "Default";
    SearchScopeType[SearchScopeType["Tenant"] = 1] = "Tenant";
    SearchScopeType[SearchScopeType["Hub"] = 2] = "Hub";
    SearchScopeType[SearchScopeType["Site"] = 3] = "Site";
})(SearchScopeType || (SearchScopeType = {}));
/**
 * Web property flags enum
 * property name matchs SPWebPropertyFlags2 definition in sts/stsom/SPWeb.cs
 */
var SPWebPropertyFlags2;
(function (SPWebPropertyFlags2) {
    /** Indicates whether site footer is enabled in this web */
    SPWebPropertyFlags2[SPWebPropertyFlags2["FooterEnabled"] = 2] = "FooterEnabled";
    /** Indicates whether mega menu is enabled on this web */
    SPWebPropertyFlags2[SPWebPropertyFlags2["MegaMenuEnabled"] = 128] = "MegaMenuEnabled";
    /** Indicates which emphasis is assigned to the footer when combined */
    SPWebPropertyFlags2[SPWebPropertyFlags2["FooterEmphasis0"] = 256] = "FooterEmphasis0";
    SPWebPropertyFlags2[SPWebPropertyFlags2["FooterEmphasis1"] = 512] = "FooterEmphasis1";
    /** Indicates which footer layout type is selected when combined */
    SPWebPropertyFlags2[SPWebPropertyFlags2["FooterLayout0"] = 1024] = "FooterLayout0";
    SPWebPropertyFlags2[SPWebPropertyFlags2["FooterLayout1"] = 2048] = "FooterLayout1";
})(SPWebPropertyFlags2 || (SPWebPropertyFlags2 = {}));
/** Default site logo URL */
var DEFAULT_LOGO_URL = '_layouts/15/images/siteicon.png';
/**
 * Gets the absolute URL of the server (like https://microsoft.sharepoint.com).
 * Input can be an ISpPageContext or other object containing absolute and server-relative web URLs.
 *
 * @example
 *  Returns "https://microsoft.sharepoint.com"
 *      getServerUrl({
 *          webAbsoluteUrl: "https://microsoft.sharepoint.com/sites/odsp",
 *          webServerRelativeUrl: "/sites/odsp"
 *      })
 *
 * Returns "http://server"
 *     getServerUrl({
 *          webAbsoluteUrl: "http://server",
 *          webServerRelativeUrl: "/"
 *     })
 */
function getServerUrl(pageContext) {
    'use strict';
    var webAbsoluteUrl = pageContext.webAbsoluteUrl, webServerRelativeUrl = pageContext.webServerRelativeUrl;
    // Handle cases like http://server site collection, where webServerRelativeUrl will be '/'
    return webServerRelativeUrl === '/' || webServerRelativeUrl === ''
        ? webAbsoluteUrl
        : webAbsoluteUrl.substring(0, webAbsoluteUrl.lastIndexOf(webServerRelativeUrl));
}
/**
 * In most cases, returns the webServerRelativeUrl as-is.
 * For the root web (http://server), returns ''.
 *
 * This function is needed because the root web's webServerRelativeUrl will be '/',
 * which is usually not desirable when combining with other paths. For example:
 *    Good:  '/myweb' + '/_api/contextinfo' => '/myweb/_api/contextinfo'
 *    Bad:   '/'      + '/_api/contextinfo' => '//_api/contextinfo'
 *    Fixed: ''       + '/_api/contextinfo' => '/_api/contextinfo'
 *
 * @param pageContext - An ISpPageContext or other object containing the server-relative URL of a web
 */
function getSafeWebServerRelativeUrl(pageContext) {
    'use strict';
    return pageContext.webServerRelativeUrl === '/' ? '' : pageContext.webServerRelativeUrl;
}
/**
 * Returns true if the current web is the root of a site collection associated with a group.
 * Otherwise it returns false.
 */
function isGroupWebContext(pageContext) {
    'use strict';
    return pageContext && !!pageContext.groupId &&
        pageContext.webAbsoluteUrl === pageContext.siteAbsoluteUrl;
}
/**
 * Returns true if the current web templates is one of the modern templates: STS#3, GROUP#0, SITEPAGEPUBLISHING#0.
 */
function isModernTemplate(pageContext) {
    var modernTemplates = ['STS#3', 'GROUP#0', 'SITEPAGEPUBLISHING#0'];
    return modernTemplates.indexOf(pageContext.webTemplateConfiguration) !== -1;
}
//# sourceMappingURL=ISpPageContext.js.map

/***/ }),

/***/ "efvT":
/*!*************************************************!*\
  !*** ./lib/extensibility/SearchQueryManager.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./customAction/CustomActionLocations */ "4QmI");




/**
 * Search query manager is used to get the search query in SPFx.
 * It supports Search query modifier extensions that can enrich the search query, and supports cases where the user
 * comes from classic pages to modern.
 *
 * @internal
 */
var SearchQueryManager = /** @class */ (function () {
    function SearchQueryManager(serviceScope) {
        this._isInitialized = false;
        this._serviceScope = serviceScope;
    }
    SearchQueryManager.prototype.initialize = function (preloadedData) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('SearchQueryManager.initialize');
        this._preloadedData = preloadedData;
        this._queryParameters = new URL(window.location.href).searchParams;
        if (this._getUrlSearchQuery() && this._hasExtensions()) {
            return this._getExtensionManager().then(function (extensionManager) {
                return extensionManager.initializeExtensions(preloadedData.customActions)
                    .then(function (numberOfExtensions) {
                    _this._isInitialized = true;
                    qosMonitor.writeSuccess({ numberOfExtensions: numberOfExtensions });
                });
            })
                .catch(function (e) {
                qosMonitor.writeUnexpectedFailure(undefined, e, { numberOfExtensions: 0 });
                throw e;
            });
        }
        else {
            this._isInitialized = true;
            qosMonitor.writeSuccess({ numberOfExtensions: 0 });
            return Promise.resolve();
        }
    };
    SearchQueryManager.prototype.isInitialized = function () {
        return this._isInitialized;
    };
    /**
     * Get the search query from the current URL.
     */
    SearchQueryManager.prototype.getSearchQuery = function () {
        if (!this._isInitialized) {
            return Promise.reject(new Error('SearchQueryManager is not initialized'));
        }
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('SearchQueryManager.getSearchQuery');
        this._queryParameters = new URL(window.location.href).searchParams;
        var searchQuery = this._getUrlSearchQuery();
        if (searchQuery && this._hasExtensions()) {
            return this._getExtensionManager()
                .then(function (extensionManager) { return extensionManager.getSearchQuery(searchQuery); })
                .then(function (q) { qosMonitor.writeSuccess(); return q; })
                .catch(function (e) { qosMonitor.writeUnexpectedFailure(undefined, e); throw e; });
        }
        else {
            qosMonitor.writeSuccess();
            return Promise.resolve(searchQuery);
        }
    };
    SearchQueryManager.prototype._getUrlSearchQuery = function () {
        // If ?q is not present, ?k can be used (support cases coming from classic pages)
        return this._queryParameters.get('q') || this._queryParameters.get('k') || undefined;
    };
    /**
     * Returns true if there is any SearchQueryModifier extension.
     * When using query params, it just checks if there is any custom action regardless of type.
     * This is exclusively a debug scenario and it's faster and smaller code, considering this runs in a core scenario.
     */
    SearchQueryManager.prototype._hasExtensions = function () {
        return this._queryParameters.has('customActions') ||
            (!!this._preloadedData.customActions &&
                this._preloadedData.customActions.some(function (customAction) { return customAction.location === _customAction_CustomActionLocations__WEBPACK_IMPORTED_MODULE_3__["default"].SEARCH_QUERY_MODIFIER; }));
    };
    SearchQueryManager.prototype._getExtensionManager = function () {
        var _this = this;
        if (!this._extensionManagerPromise) {
            this._extensionManagerPromise = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].loadComponentById('4958ea79-6ff3-4480-8291-0932dd010869')
                .then(function (spSearchExtensibility) {
                return new spSearchExtensibility._SearchQueryExtensionManager(_this._serviceScope);
            });
        }
        return this._extensionManagerPromise;
    };
    SearchQueryManager.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-application-base:SearchQueryManager', SearchQueryManager);
    return SearchQueryManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (SearchQueryManager);


/***/ }),

/***/ "f2ns":
/*!********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/async/Signal.js ***!
  \********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/async/Signal.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.Signal = pkg.Signal;
module.exports.default = pkg.Signal;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "f70Y":
/*!**************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/CommandBarButton.styles.js ***!
  \**************************************************************************************************************************************************************************************************************/
/*! exports provided: CommandBarButtonStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBarButtonStyles", function() { return CommandBarButtonStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");


var CommandBarButtonStyles = function (props) {
    var theme = props.theme;
    if (!theme) {
        throw new Error('Theme is undefined or null.');
    }
    var palette = theme.palette;
    return {
        root: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: palette.neutralLighter }, Object(office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: 0 })),
        rootHovered: {
            backgroundColor: palette.neutralLight
        },
        rootPressed: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        rootExpanded: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        rootChecked: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        rootCheckedHovered: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        rootDisabled: {
            backgroundColor: palette.neutralLighter
        },
        splitButtonMenuButton: {
            backgroundColor: palette.neutralLighter,
            selectors: {
                ':hover': {
                    backgroundColor: palette.neutralLight
                }
            }
        },
        splitButtonMenuButtonChecked: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        splitButtonMenuButtonExpanded: {
            backgroundColor: palette.neutralQuaternaryAlt
        },
        splitButtonMenuButtonDisabled: {
            backgroundColor: palette.neutralLighter
        }
    };
};
//# sourceMappingURL=CommandBarButton.styles.js.map

/***/ }),

/***/ "fBGb":
/*!************************************!*\
  !*** ./lib/ApplicationLoadType.js ***!
  \************************************/
/*! exports provided: ApplicationLoadType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationLoadType", function() { return ApplicationLoadType; });
// Copyright (c) Microsoft. All rights reserved.
/**
 * Determines the type of the application load.
 * This is used by SPFx applications to understand whether they were initiated as part of a
 * full page load or an in-place navigation.
 *
 * @internal
 */
var ApplicationLoadType;
(function (ApplicationLoadType) {
    /**
     * This informs the application that it was loaded as part of a full-page load.
     */
    ApplicationLoadType[ApplicationLoadType["FullPageLoad"] = 0] = "FullPageLoad";
    /**
     * This informs the application that it was loaded as part of an in-place navigation from
     * a different application.
     */
    ApplicationLoadType[ApplicationLoadType["InPlaceNavigation"] = 1] = "InPlaceNavigation";
})(ApplicationLoadType || (ApplicationLoadType = {}));


/***/ }),

/***/ "faye":
/*!****************************!*\
  !*** external "react-dom" ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_faye__;

/***/ }),

/***/ "fglE":
/*!**********************************************!*\
  !*** external "@ms/uifabric-styling-bundle" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_fglE__;

/***/ }),

/***/ "g/8y":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/sp-resource-path/0.7.2/node_modules/@ms/sp-resource-path/lib-esm/SPResourcePath.js ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: SPResourcePathFormat, SPResourcePath */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPResourcePathFormat", function() { return SPResourcePathFormat; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPResourcePath", function() { return SPResourcePath; });
/**
 * @public
 */
var SPResourcePathFormat;
(function (SPResourcePathFormat) {
    SPResourcePathFormat[SPResourcePathFormat["absolute"] = 0] = "absolute";
    SPResourcePathFormat[SPResourcePathFormat["relative"] = 1] = "relative";
    SPResourcePathFormat[SPResourcePathFormat["serverRelative"] = 2] = "serverRelative";
})(SPResourcePathFormat || (SPResourcePathFormat = {}));
/**
 * Simplified implementation of a URI parser which does not attempt decoding of segments,
 * handling of query strings, or separation of the fragment. Intended for use on SharePoint
 * Resource Paths or other URL-like entities which may not actually conform to the URL
 * specification, but may be used for simple transformations of URLs.
 *
 * This class makes several assumptions about the format of input URLs:
 * - Absolute URLs begin with '<scheme>://<host>'
 * - Relative URLs being with '/'
 * - URLs never have a trailing '/'
 *
 * @public
 */
var SPResourcePath = /** @class */ (function () {
    /**
     * Creates an instance of SPResourcePath.
     *
     * @param value - A string representing a well-formed, decoded SharePoint resource path.
     */
    function SPResourcePath(value) {
        if (value === void 0) { value = ''; }
        var rootDelimeter = '//';
        var indexOfRootDelimeter = value.indexOf(rootDelimeter);
        var indexOfPathDelimeter = value.indexOf('/');
        // The root delimeter is the first instance of '//', unless preceded by a lone '/'
        var endIndexOfRootDelimeter = indexOfRootDelimeter > -1 && indexOfRootDelimeter <= indexOfPathDelimeter ?
            indexOfRootDelimeter + rootDelimeter.length :
            -1;
        var authority = getAuthority(value, endIndexOfRootDelimeter);
        var domain = authority && authority.slice(endIndexOfRootDelimeter);
        // By definition, everything after the authority is the path
        var path = value.slice(authority.length);
        var format = authority ?
            SPResourcePathFormat.absolute :
            path[0] === '/' ?
                SPResourcePathFormat.serverRelative :
                SPResourcePathFormat.relative;
        var segments = path.split('/');
        this.authority = authority;
        this.domain = domain;
        this.format = format;
        this.path = path;
        this.segments = segments;
        this.value = value;
    }
    return SPResourcePath;
}());

function getAuthority(value, endIndexOfRootDelimeter) {
    if (endIndexOfRootDelimeter > -1) {
        var indexOfNextSegment = value.indexOf('/', endIndexOfRootDelimeter);
        if (indexOfNextSegment > -1) {
            return value.slice(0, indexOfNextSegment);
        }
        else {
            return value;
        }
    }
    else {
        return '';
    }
}
//# sourceMappingURL=SPResourcePath.js.map

/***/ }),

/***/ "g/d6":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/FabricTheming.js ***!
  \*****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var RgbaColor_1 = __webpack_require__(/*! ./RgbaColor */ "w/WL");
var Shades_1 = __webpack_require__(/*! ./Shades */ "HYQE");
/**
 * Utility class with static methods to work with Fabric-style themes.
 */
var FabricTheming = /** @class */ (function () {
    function FabricTheming() {
    }
    /**
     * Generates a palette of Fabric colors from a primary RGB color value.
     * @param {RgbaColor} primaryRgb Primary RGB color used to generate a palette.
     * @param {boolean} inverted Whether the theme is inverted, with a dark background and light foreground.
     */
    FabricTheming.generateFabricColors = function (primaryRgb, inverted) {
        if (inverted === void 0) { inverted = false; }
        var generatedShades = {
            "themeDarker": Shades_1.Shade.Shade8,
            "themeDark": Shades_1.Shade.Shade7,
            "themeDarkAlt": Shades_1.Shade.Shade6,
            "themeLight": Shades_1.Shade.Shade3,
            "themeLighter": Shades_1.Shade.Shade2,
            "themeLighterAlt": Shades_1.Shade.Shade1,
            "themePrimary": Shades_1.Shade.Unshaded,
            "themeAccent": Shades_1.Shade.Unshaded,
            "themeSecondary": Shades_1.Shade.Shade5,
            "themeTertiary": Shades_1.Shade.Shade4
        };
        // Expected color slots. Start each defaulting to null to avoid warnings about missing slots.
        var colors = FabricTheming._getDefaultThemeTokenMap();
        // Starting points for the generated palette.
        var primaryColor = RgbaColor_1.default.fromRgba(primaryRgb.R, primaryRgb.G, primaryRgb.B);
        for (var shadeName in generatedShades) {
            var shade = generatedShades[shadeName];
            colors[shadeName] = Shades_1.getShade(primaryColor, shade, inverted);
        }
        var accent = colors["themeAccent"];
        colors["themeAccentTranslucent10"] = accent ?
            RgbaColor_1.default.fromRgba(accent.R, accent.G, accent.B, 0.1 * RgbaColor_1.default.maxComponent) : null;
        // Handle neutral slots for inverted themes
        if (inverted) {
            var invertedText = '#fff';
            var invertedNeutralQuaternary = '#4f4f4f';
            var invertedNeutralQuaternaryAlt = '#484848';
            var invertedNeutralColors = {
                'black': '#fff',
                'blackTranslucent40': '#66ffffff',
                'neutralDark': '#f4f4f4',
                'neutralPrimary': invertedText,
                'neutralPrimaryTranslucent50': '#7fffffff',
                'neutralPrimaryAlt': '#dadada',
                'neutralSecondary': '#d0d0d0',
                'neutralTertiary': '#c8c8c8',
                'neutralTertiaryAlt': '#6d6d6d',
                'neutralQuaternary': invertedNeutralQuaternary,
                'neutralQuaternaryAlt': invertedNeutralQuaternaryAlt,
                'cmdbarSelected': invertedNeutralQuaternary,
                'cmdbarSelectedHover': invertedNeutralQuaternaryAlt,
                'neutralLight': '#3f3f3f',
                'neutralLighter': '#313131',
                'neutralLighterAlt': '#282828',
                'white': '#1f1f1f',
                'whiteTranslucent40': '#661f1f1f',
                'error': '#f00',
                'errorBackground': '#7e3333'
            };
            for (var neutralSlot in invertedNeutralColors) {
                if (invertedNeutralColors.hasOwnProperty(neutralSlot)) {
                    colors[neutralSlot] =
                        RgbaColor_1.default.fromHtmlColor(invertedNeutralColors[neutralSlot]);
                }
            }
        }
        return colors;
    };
    FabricTheming._getDefaultThemeTokenMap = function () {
        return {
            backgroundOverlay: null,
            themeDarker: null,
            themeDark: null,
            themeDarkAlt: null,
            themePrimary: null,
            themeSecondary: null,
            themeTertiary: null,
            themeLight: null,
            themeLighter: null,
            themeLighterAlt: null,
            black: null,
            cmdbarSelected: null,
            cmdbarSelectedHover: null,
            neutralDark: null,
            neutralPrimary: null,
            neutralPrimaryAlt: null,
            neutralPrimaryTranslucent50: null,
            neutralSecondary: null,
            neutralSecondaryAlt: null,
            neutralTertiary: null,
            neutralTertiaryAlt: null,
            neutralQuaternary: null,
            neutralQuaternaryAlt: null,
            neutralLight: null,
            neutralLighter: null,
            neutralLighterAlt: null,
            white: null,
            blackTranslucent40: null,
            whiteTranslucent40: null,
            yellow: null,
            yellowLight: null,
            orange: null,
            orangeLight: null,
            redDark: null,
            red: null,
            magentaDark: null,
            magenta: null,
            magentaLight: null,
            purpleDark: null,
            purple: null,
            purpleLight: null,
            blueDark: null,
            blueMid: null,
            blue: null,
            blueLight: null,
            tealDark: null,
            teal: null,
            tealLight: null,
            greenDark: null,
            green: null,
            greenLight: null,
            error: null,
            errorBackground: null,
            success: null,
            successBackground: null,
            alert: null,
            alertBackground: null,
            infoBackground: null,
            info: null,
            orangeLighter: null
        };
    };
    return FabricTheming;
}());
exports.default = FabricTheming;
//# sourceMappingURL=FabricTheming.js.map

/***/ }),

/***/ "gdPU":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/providers/theming/ThemeProviderFactory.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: getThemeProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeProvider", function() { return getThemeProvider; });
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities/lib/killswitch/Killswitch */ "WA4G");
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_0__);
// OneDrive:IgnoreCodeCoverage


var _themeProvider;
var _themeProviderFactory;
/**
 * Uses context information to choose the appropriate theme provider, if any.
 * May return an undefined value if not theme provider is deemed appropriate.
 */
function getThemeProvider(themeProviders, spPageContext) {
    "use strict";
    if (!_themeProvider || _themeProviderFactory !== themeProviders) {
        _themeProvider = _instantiateThemeProvider(themeProviders, spPageContext);
        _themeProviderFactory = themeProviders;
    }
    return _themeProvider;
}
/**
 * Uses context information to choose the appropriate theme provider, if any.
 * May return an undefined value if no theme provider is deemed appropriate.
 */
function _instantiateThemeProvider(themeProviders, spPageContext) {
    "use strict";
    // Only load the theme on a SharePoint page which declares a theme.
    // This logic should be updated as more apps are able to provide a theme.
    var themeProvider;
    // Use window to get the pageContext since it might not be declared (e.g. ODC).
    var pageContext = spPageContext ? spPageContext : window['_spPageContextInfo'];
    if (!_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_0__["Killswitch"].isActivated('a020a308-99f2-4254-96f6-b7098ed595ab', '04/05/2019', 'Allow null groupColor')) {
        if (pageContext) {
            themeProvider = themeProviders.webThemeProvider(pageContext);
        }
    }
    else {
        if (pageContext && (pageContext.themedCssFolderUrl || pageContext.groupColor)) {
            themeProvider = themeProviders.webThemeProvider(pageContext);
        }
    }
    return themeProvider;
}
//# sourceMappingURL=ThemeProviderFactory.js.map

/***/ }),

/***/ "h/u7":
/*!*********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/rumone/APICallPerformanceData.js ***!
  \*********************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/logging/rumone/APICallPerformanceData.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.APICallPerformanceData;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "hnn/":
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/DefaultButton.styles.js ***!
  \***********************************************************************************************************************************************************************************************************/
/*! exports provided: DefaultButtonStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultButtonStyles", function() { return DefaultButtonStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");


var DefaultButtonStyles = function (props) {
    var theme = props.theme;
    if (!theme) {
        throw new Error('Theme is undefined or null.');
    }
    var palette = theme.palette;
    return {
        root: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: palette.neutralLighter, border: '1px solid transparent' }, Object(office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: 0, borderColor: palette.white })),
        rootHovered: {
            backgroundColor: palette.neutralLight,
            selectors: {
                '.ms-Button--primary': {
                    backgroundColor: palette.themeDarkAlt
                }
            }
        },
        rootPressed: {
            backgroundColor: palette.neutralTertiaryAlt
        },
        rootExpanded: {
            backgroundColor: palette.neutralTertiaryAlt
        },
        rootChecked: {
            backgroundColor: palette.neutralTertiaryAlt
        },
        rootDisabled: {
            backgroundColor: palette.neutralLighter,
            borderColor: 'transparent'
        },
        splitButtonMenuButton: {
            backgroundColor: palette.neutralLighter,
            border: '1px solid transparent'
        },
        splitButtonContainer: {
            selectors: {
                '.ms-Button--primary': {
                    backgroundColor: palette.themePrimary,
                    selectors: {
                        ':hover': {
                            background: palette.themeDarkAlt
                        }
                    }
                },
                '.ms-Button--primary + .ms-Button': {
                    backgroundColor: palette.themePrimary,
                    selectors: {
                        ':hover': {
                            background: palette.themeDarkAlt
                        }
                    }
                },
                '.ms-Button.is-disabled': {
                    backgroundColor: palette.neutralLighter
                },
                '.ms-Button.is-disabled + .ms-Button.is-disabled': {
                    backgroundColor: palette.neutralLighter,
                    border: 'none'
                }
            }
        }
    };
};
//# sourceMappingURL=DefaultButton.styles.js.map

/***/ }),

/***/ "j2/K":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function (useSourceMap) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item, useSourceMap);

      if (item[2]) {
        return '@media ' + item[2] + '{' + content + '}';
      } else {
        return content;
      }
    }).join('');
  }; // import a list of modules into the list


  list.i = function (modules, mediaQuery) {
    if (typeof modules === 'string') {
      modules = [[null, modules, '']];
    }

    var alreadyImportedModules = {};

    for (var i = 0; i < this.length; i++) {
      var id = this[i][0];

      if (id != null) {
        alreadyImportedModules[id] = true;
      }
    }

    for (i = 0; i < modules.length; i++) {
      var item = modules[i]; // skip already imported module
      // this implementation is not 100% perfect for weird media query combinations
      // when a module is imported multiple times with different media queries.
      // I hope this will never occur (Hey this way we have smaller bundles)

      if (item[0] == null || !alreadyImportedModules[item[0]]) {
        if (mediaQuery && !item[2]) {
          item[2] = mediaQuery;
        } else if (mediaQuery) {
          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';
        }

        list.push(item);
      }
    }
  };

  return list;
};

function cssWithMappingToString(item, useSourceMap) {
  var content = item[1] || '';
  var cssMapping = item[3];

  if (!cssMapping) {
    return content;
  }

  if (useSourceMap && typeof btoa === 'function') {
    var sourceMapping = toComment(cssMapping);
    var sourceURLs = cssMapping.sources.map(function (source) {
      return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
    });
    return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  }

  return [content].join('\n');
} // Adapted from convert-source-map (MIT)


function toComment(sourceMap) {
  // eslint-disable-next-line no-undef
  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  return '/*# ' + data + ' */';
}

/***/ }),

/***/ "jJYg":
/*!****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Dialog.styles.js ***!
  \****************************************************************************************************************************************************************************************************/
/*! exports provided: DialogContentStyles, DialogFooterStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogContentStyles", function() { return DialogContentStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogFooterStyles", function() { return DialogFooterStyles; });
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");

var DialogContentStyles = function (props) {
    var theme = props.theme, isMultiline = props.isMultiline, isLargeHeader = props.isLargeHeader;
    var palette = theme.palette, fonts = theme.fonts;
    return {
        title: [
            fonts.xLarge,
            {
                padding: '20px 36px 20px 28px'
            },
            isLargeHeader && [
                fonts.xxLarge,
                {
                    padding: '26px 28px 28px'
                }
            ]
        ],
        topButton: {
            padding: '12px 12px 0 0',
            selectors: {
                '.ms-Dialog-button': {
                    color: palette.neutralSecondary
                },
                '.ms-Dialog-button:hover': {
                    color: palette.neutralDark
                }
            }
        },
        inner: {
            padding: isMultiline ? '0 20px 20px' : '0 28px 20px'
        },
        subText: {
            fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semilight
        }
    };
};
var DialogFooterStyles = {
    actions: {
        margin: '20px 0 0'
    }
};
//# sourceMappingURL=Dialog.styles.js.map

/***/ }),

/***/ "jOlS":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_jOlS__;

/***/ }),

/***/ "jQzw":
/*!*********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/index.js ***!
  \*********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @uifabric/styling/index.js
var pkg = __webpack_require__(/*! @ms/uifabric-styling-bundle */ "fglE");
module.exports = {}
for (var key in pkg) {
  if (pkg.hasOwnProperty(key)) {
    module.exports[key] = pkg[key];
  }
}
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "jZLx":
/*!******************************************************!*\
  !*** ./lib/extensibility/placeholder/Placeholder.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _PlaceholderContent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PlaceholderContent */ "DXcd");
/* harmony import */ var _PlaceholderName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PlaceholderName */ "Cs6k");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__);




/**
 * Represents the placeholder div provided by the application
 *
 * @internal
 */
var Placeholder = /** @class */ (function () {
    function Placeholder(definition, manager) {
        // This array is kept ordered by sequence number
        this._entries = [];
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(definition, 'definition');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(definition.domElement, 'definition.domElement');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(manager, 'manager');
        this._name = definition.name;
        this._domElement = definition.domElement;
        this._applicationDomElement = undefined;
    }
    Object.defineProperty(Placeholder.prototype, "name", {
        get: function () {
            return this._name;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Create a new placeholder content for this placeholder
     */
    Placeholder.prototype.createPlaceholderContent = function (sequence, options) {
        // Create a separate browser DOM node to host the third-party placeholder.
        // We found that, if we use a node from the ReactJS virtual DOM tree,
        // and in the child DOM tree the placeholder tries to load a different
        // version of ReactJS, that can break due to compatibility issues between
        // the two different verions of ReactJS.
        var contentDiv = document.createElement('div');
        if (!_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__["_ComponentBaseKillSwitches"].isAddSpecificityToLegacyWebPartKSActivated()) {
            // We will add legacy css style for all 3rd extensions.
            contentDiv.classList.add('ms-SPLegacyFabricBlock');
        }
        var position = this._addContentDiv(contentDiv, sequence);
        var placeholderContent = new _PlaceholderContent__WEBPACK_IMPORTED_MODULE_1__["default"]({
            placeholder: this,
            sequence: sequence,
            domElement: contentDiv,
            options: options
        });
        this._entries.splice(position, 0, { placeholderContent: placeholderContent, sequence: sequence });
        return placeholderContent;
    };
    Placeholder.prototype.removePlaceholderContent = function (placeholderContent) {
        for (var i = 0; i < this._entries.length; i++) {
            if (this._entries[i].placeholderContent === placeholderContent) {
                this._domElement.removeChild(this._entries[i].placeholderContent.domElement);
                this._entries.splice(i, 1);
                i--; // Because the current element was removed we should keep looking at the same index
            }
        }
    };
    Placeholder.prototype.attachToApplication = function (applicationDomElement) {
        this._applicationDomElement = applicationDomElement;
        this._applicationDomElement.appendChild(this._domElement);
    };
    Placeholder.prototype.detachFromApplication = function () {
        if (this._applicationDomElement) {
            this._applicationDomElement.appendChild(this._domElement);
            this._applicationDomElement = undefined;
        }
    };
    /**
     * Adds the DOM element of a placeholder content in the placeholder DIV element.
     * Returns the position inside of the placeholder where the content was placed.
     *
     * @param domElement - DOM element of the placeholder content
     * @param sequence - Sequence number of the placeholder content
     */
    Placeholder.prototype._addContentDiv = function (domElement, sequence) {
        // Keep the entries ordered by sequence number.
        // Bottom Placeholder is sorted by sequence number
        // in reverse order.
        var i;
        if (this.name === _PlaceholderName__WEBPACK_IMPORTED_MODULE_2__["default"].Bottom) {
            i = this._entries.length;
            while (i > 0 && sequence > this._entries[i - 1].sequence) {
                i--;
            }
        }
        else {
            i = 0;
            while (i < this._entries.length && sequence >= this._entries[i].sequence) {
                i++;
            }
        }
        if (i < this._entries.length) {
            var nextDiv = this._entries[i].placeholderContent.domElement;
            this._domElement.insertBefore(domElement, nextDiv);
        }
        else {
            this._domElement.appendChild(domElement);
        }
        return i;
    };
    return Placeholder;
}());
/* harmony default export */ __webpack_exports__["default"] = (Placeholder);


/***/ }),

/***/ "k7mo":
/*!*********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/DetailsList.styles.js ***!
  \*********************************************************************************************************************************************************************************************************/
/*! exports provided: CheckStyles, DetailsRowCheckStyles, DetailsHeaderStyles, DetailsRowStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckStyles", function() { return CheckStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheckStyles", function() { return DetailsRowCheckStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderStyles", function() { return DetailsHeaderStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowStyles", function() { return DetailsRowStyles; });
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");

var CheckStyles = function (props) {
    var theme = props.theme, checked = props.checked;
    var palette = theme.palette;
    return {
        circle: [!checked && { color: palette.neutralTertiaryAlt }],
        check: [!checked && { color: palette.neutralTertiaryAlt }]
    };
};
var DetailsRowCheckStyles = function (props) {
    var isHeader = props.isHeader, compact = props.compact;
    var height = isHeader ? 32 : compact ? 32 : 42;
    return {
        check: {
            height: height
        }
    };
};
var DetailsHeaderStyles = {
    root: {
        height: 32,
        lineHeight: '32px'
    },
    check: {
        height: 32
    },
    cellIsCheck: {
        height: 32
    },
    cellIsGroupExpander: {
        height: 32
    }
};
var DetailsRowStyles = function (props) {
    var isSelected = props.isSelected;
    return {
        isRowHeader: [
            isSelected && {
                fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular
            }
        ]
    };
};
//# sourceMappingURL=DetailsList.styles.js.map

/***/ }),

/***/ "mBgx":
/*!**************************************!*\
  !*** ./lib/LegacyFabric6Function.js ***!
  \**************************************/
/*! exports provided: makeSemanticColorsFromPalette, DefaultEffects */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeSemanticColorsFromPalette", function() { return makeSemanticColorsFromPalette; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return DefaultEffects; });
// Copied from https://github.com/OfficeDev/office-ui-fabric-react/blob/6.0/packages/styling/src/styles/theme.ts#L181
// Used to generate fabric 6's styles.
// tslint:disable-next-line: export-name
function makeSemanticColorsFromPalette(p, isInverted, depComments) {
    var toReturn = {
        bodyBackground: p.white,
        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,
        disabledBodyText: p.neutralTertiary,
        disabledSubtext: p.neutralQuaternary,
        disabledBodySubtext: 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(232, 17, 35, .2)' : 'rgba(232, 17, 35, .5)',
        blockingBackground: !isInverted ? 'rgba(234, 67, 0, .2)' : 'rgba(234, 67, 0, .5)',
        warningBackground: !isInverted ? 'rgba(255, 185, 0, .2)' : 'rgba(255, 251, 0, .6)',
        warningHighlight: !isInverted ? '#ffb900' : '#fff100',
        successBackground: !isInverted ? 'rgba(186, 216, 10, .2)' : 'rgba(186, 216, 10, .4)',
        inputBorder: p.neutralTertiary,
        inputBorderHovered: p.neutralPrimary,
        inputBackground: p.white,
        inputBackgroundChecked: p.themePrimary,
        inputBackgroundCheckedHovered: p.themeDarkAlt,
        inputForegroundChecked: p.white,
        inputFocusBorderAlt: p.themePrimary,
        smallInputBorder: p.neutralSecondary,
        inputText: p.neutralPrimary,
        inputTextHovered: p.neutralDark,
        inputPlaceholderText: p.neutralSecondary,
        buttonBackground: p.neutralLighter,
        buttonBackgroundChecked: p.neutralTertiaryAlt,
        buttonBackgroundHovered: p.neutralLight,
        buttonBackgroundCheckedHovered: p.neutralLight,
        buttonBackgroundPressed: p.neutralLight,
        buttonBackgroundDisabled: p.neutralLighter,
        buttonBorder: 'transparent',
        buttonText: p.neutralPrimary,
        buttonTextHovered: p.neutralDark,
        buttonTextChecked: p.neutralDark,
        buttonTextCheckedHovered: p.black,
        buttonTextPressed: p.neutralDark,
        buttonTextDisabled: p.neutralTertiary,
        buttonBorderDisabled: 'transparent',
        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);
}
// https://github.com/OfficeDev/office-ui-fabric-react/blob/6.0/packages/styling/src/styles/DefaultEffects.ts#L3
// tslint:disable-next-line: variable-name
var DefaultEffects = {
    // commented values are the defaults for Fluent
    elevation4: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation8: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation16: '0 0 5px 0 rgba(0,0,0,.4)',
    elevation64: '0 0 5px 0 rgba(0,0,0,.4)',
    roundedCorner2: '0px' // 2
};
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;
}


/***/ }),

/***/ "mUIx":
/*!************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/dataSources/base/ServerConnection.js ***!
  \************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ServerData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ServerData */ "6cmh");
/* harmony import */ var _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/odsp-utilities/lib/uri/Uri */ "oQJL");
/* harmony import */ var _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_odsp_utilities_lib_scope_Scope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/odsp-utilities/lib/scope/Scope */ "8qk/");
/* harmony import */ var _ms_odsp_utilities_lib_scope_Scope__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_scope_Scope__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_APICallPerformanceData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/rumone/APICallPerformanceData */ "h/u7");
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_APICallPerformanceData__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_rumone_APICallPerformanceData__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/odsp-utilities/lib/logging/rumone/RUMOneLogger */ "H6KY");
/* harmony import */ var _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _ms_odsp_utilities_lib_events_EventGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ms/odsp-utilities/lib/events/EventGroup */ "siCY");
/* harmony import */ var _ms_odsp_utilities_lib_events_EventGroup__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_events_EventGroup__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ms/odsp-utilities/lib/async/Promise */ "MS/P");
/* harmony import */ var _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ms/odsp-utilities/lib/killswitch/Killswitch */ "WA4G");
/* harmony import */ var _ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ms/utilities-error/lib/ApiError */ "PcWP");
/* harmony import */ var _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_8__);









// Seconds subtracted from request digest interval to compensate for client-server delay
var CLIENT_SERVER_BUFFER = 60;
var ServerConnection = /** @class */ (function () {
    function ServerConnection(params) {
        if (params === void 0) { params = {}; }
        this._scope = new _ms_odsp_utilities_lib_scope_Scope__WEBPACK_IMPORTED_MODULE_2___default.a();
        this._events = this._scope.attach(new _ms_odsp_utilities_lib_events_EventGroup__WEBPACK_IMPORTED_MODULE_5___default.a(this));
        // If the absolute URL is provided, it will be used for most requests.
        var webAbsoluteUrl = params.webAbsoluteUrl || params.webUrl;
        // The server-relative URL is used for caching request digests.
        // If it's not provided, try and calculate it from the absolute URL.
        this._webServerRelativeUrl = params.webServerRelativeUrl || (webAbsoluteUrl && new _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default.a(webAbsoluteUrl).getPath());
        if (this._webServerRelativeUrl === '/') {
            this._webServerRelativeUrl = '';
        }
        if (webAbsoluteUrl) {
            this._webAbsoluteUrl = webAbsoluteUrl;
            this._alwaysGetDigest = true;
        }
        else {
            this._alwaysGetDigest = false;
        }
        this._needsRequestDigest = params.needsRequestDigest !== false;
        if (this._needsRequestDigest) {
            this._tryLoadDigest(params.formDigest);
        }
        this._requestCanaryForAuth = false;
        this._engagement = params.engagement;
        this._operationName = params.operationName;
    }
    ServerConnection._useServerTimeExpirationCheck = function () {
        var useServerTimeExpirationCheckKillswitch = !_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__["Killswitch"].isActivated('561C4018-2C0E-4580-9779-F755E0ECC79A', '07/05/2019', 'Use serverTime to check canary expiration, instead of updateFormDigestPageLoaded');
        return useServerTimeExpirationCheckKillswitch;
    };
    ServerConnection._isXhrAborted = function (xhr) {
        try {
            // status isn't necessarily valid unless the readyState is true.
            if (xhr.readyState === 4 && (typeof (xhr.status) === 'undefined' || xhr.status === 0)) {
                return true;
            }
            if (xhr.isCancelled) {
                return true;
            }
        }
        catch (e) {
            return true;
        }
        return false;
    };
    ServerConnection._isValidFormDigest = function (formDigest) {
        // Value of serverTime is same as what comes as part of formDigestValue
        // but is in locale neutral ISO 8601 format. So it will get correctly
        // parsed by Date class irrespective of client locale.
        // serverTime is accurate to the order of ms, while DateTime which comes
        // as part of formDigestValue is trimmed to order of seconds. Subtract
        // 60 s from formDigestTimeoutSeconds to avoid any timing errors b/w
        // server and client.
        if (ServerConnection._useServerTimeExpirationCheck()) {
            return formDigest && formDigest.serverTime &&
                (Date.now() - new Date(formDigest.serverTime).getTime()) < (formDigest.formDigestTimeoutSeconds - CLIENT_SERVER_BUFFER) * 1000 /*convert to ms*/;
        }
        else {
            return formDigest && formDigest.updateFormDigestPageLoaded &&
                (Date.now() - formDigest.updateFormDigestPageLoaded.getTime()) < formDigest.formDigestTimeoutSeconds * 1000 /*convert to ms*/;
        }
    };
    ServerConnection.prototype.dispose = function () {
        this._scope.dispose();
    };
    ServerConnection.prototype.abort = function () {
        if (this._currentRequest) {
            // Add a custom field to this request object so we can pass the message to the OnReadyStateChange function that THIS specific XHR has been canceled!
            //  It's unclear to me is this is really needed.  Some documentation I have ready states 'Calling abort resets the object; the onreadystatechange
            //  event handler is removed, and readyState is changed to 0 (uninitialized).'  If this is the case, then the onreadystatechange should never be
            //  called and if it is then the state of the request is set to 0, which I handle below.
            // For completeness only I leave this here.  (Belt and suspenders).
            var request = this._currentRequest;
            request.isCancelled = true;
            // Now abort this XHR
            request.abort();
            this._currentRequest = undefined;
        }
    };
    ServerConnection.prototype.isRequestActive = function () {
        return !!this._currentRequest;
    };
    ServerConnection.prototype.getServerDataFromUrl = function (options) {
        var _this = this;
        var strUrl = options.url, successCallback = options.successCallback, failureCallback = options.failureCallback, uploadProgressCallback = options.uploadProgressCallback, additionalPostData = options.additionalPostData, _a = options.isRest, fRest = _a === void 0 ? true : _a, _b = options.method, method = _b === void 0 ? 'POST' : _b, withCredentials = options.withCredentials, additionalHeaders = options.additionalHeaders, contentType = options.contentType, noRedirect = options.noRedirect, responseType = options.responseType, _c = options.needsRequestDigest, needsRequestDigest = _c === void 0 ? this._needsRequestDigest : _c;
        var startTime = new Date().toISOString();
        var req = new XMLHttpRequest();
        req.open(method, strUrl, true);
        if (typeof withCredentials === 'boolean') {
            req.withCredentials = withCredentials;
        }
        if (responseType) {
            req.responseType = responseType;
        }
        // Set the Content Type
        if (contentType) {
            req.setRequestHeader('Content-Type', contentType);
        }
        else {
            if (fRest) {
                req.setRequestHeader('Content-Type', 'application/json;odata=verbose');
            }
            else {
                req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            }
        }
        var acceptHeaderSpecified = false;
        if (additionalHeaders) {
            for (var headerKey in additionalHeaders) {
                if (headerKey) {
                    req.setRequestHeader(headerKey, additionalHeaders[headerKey]);
                    if (headerKey.toLowerCase() === 'accept') {
                        acceptHeaderSpecified = true;
                    }
                }
            }
        }
        if (!acceptHeaderSpecified) {
            req.setRequestHeader('accept', 'application/json;odata=verbose');
        }
        // Remember this request so we can tell if we have a request in flight and so we can cancel it if needed.
        this._currentRequest = req;
        var onRequestDigestReady = function (requestDigest) {
            if (needsRequestDigest && requestDigest) {
                req.setRequestHeader('x-requestdigest', requestDigest);
            }
            _this._events.on(req, 'readystatechange', function () {
                _this._onReadyStateChange(req, strUrl, successCallback, failureCallback, noRedirect, startTime);
            });
            if (uploadProgressCallback && req.upload) {
                _this._events.on(req.upload, 'progress', function (event) {
                    uploadProgressCallback(event);
                });
            }
            req.send(additionalPostData);
        };
        if (needsRequestDigest) {
            this._ensureRequestDigest(onRequestDigestReady, failureCallback);
        }
        else {
            onRequestDigestReady();
        }
    };
    ServerConnection.prototype.ensureRequestDigest = function (callback, failureCallback) {
        this._ensureRequestDigest(callback, failureCallback);
    };
    ServerConnection.prototype._ensureRequestDigest = function (callback, failureCallback) {
        // if requestDigest is available and not expired then use it, otherwise get a new one
        var currentDigest = ServerConnection._formDigests[this._webServerRelativeUrl];
        if (!this._alwaysGetDigest && ServerConnection._isValidFormDigest(currentDigest)) {
            callback(currentDigest.formDigestValue);
        }
        else {
            this._ensureRequestDigestWorker(callback, failureCallback);
        }
    };
    ServerConnection.prototype._ensureRequestDigestWorker = function (callback, failureCallback) {
        var _this = this;
        var formDigestRequestTime = new Date();
        var serverConnection = new ServerConnection({
            needsRequestDigest: false,
            webServerRelativeUrl: this._webServerRelativeUrl,
            webUrl: undefined
        });
        if (!callback) {
            // no callback only means we're doing auth only request.
            serverConnection._requestCanaryForAuth = true;
        }
        var webUrl = this._webAbsoluteUrl || this._webServerRelativeUrl;
        if (typeof webUrl === 'string') {
            // If static promise does not exist, create it
            if (!ServerConnection._requestDigestPromise) {
                ServerConnection._requestDigestPromise = new _ms_odsp_utilities_lib_async_Promise__WEBPACK_IMPORTED_MODULE_6___default.a(function (complete, e) {
                    var onDataSuccess = function (serverData) {
                        var responseText = serverData.getResponseText();
                        var jsonObj = JSON.parse(responseText);
                        var requestDigest = jsonObj.d.GetContextWebInformation;
                        ServerConnection._formDigests[_this._webServerRelativeUrl] = {
                            serverTime: formDigestRequestTime.toISOString(),
                            formDigestValue: requestDigest.FormDigestValue,
                            formDigestTimeoutSeconds: requestDigest.FormDigestTimeoutSeconds - CLIENT_SERVER_BUFFER,
                            updateFormDigestPageLoaded: new Date()
                        };
                        complete(ServerConnection._formDigests[_this._webServerRelativeUrl].formDigestValue);
                        ServerConnection._requestDigestPromise = undefined;
                    };
                    var onDataError = function (serverData) {
                        if (callback) {
                            callback(undefined);
                        }
                        else if (failureCallback) {
                            failureCallback(serverData);
                        }
                        e(undefined);
                        ServerConnection._requestDigestPromise = undefined;
                    };
                    serverConnection.getServerDataFromUrl({
                        url: _ms_odsp_utilities_lib_uri_Uri__WEBPACK_IMPORTED_MODULE_1___default.a.concatenate(webUrl, '/_api/contextinfo'),
                        successCallback: onDataSuccess,
                        failureCallback: onDataError,
                        method: 'POST',
                        noRedirect: !!failureCallback
                    });
                });
            }
            ServerConnection._requestDigestPromise.then(function (requestDigest) {
                if (callback) {
                    callback(requestDigest);
                }
                return requestDigest;
            });
        }
        else if (failureCallback) {
            failureCallback(undefined, new _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_8__["ApiError"]({
                code: 'MissingWebForDigestAuth',
                isExpected: false
            }));
        }
    };
    ServerConnection.prototype._onReadyStateChange = function (req, strUrl, successCallback, failureCallback, noRedirect, startTime) {
        // Don't do anything unless the State is 'Ready' and this request has not yet been aborted.
        if (req.readyState !== 4) {
            return;
        }
        // undefined out the request that this object is holding onto.  This is the flag to let us know that we no longer have an active request.
        this._currentRequest = undefined;
        this._events.off(req);
        if (req.upload) {
            this._events.off(req.upload);
        }
        if (!ServerConnection._isXhrAborted(req)) {
            var serverData_1 = new _ServerData__WEBPACK_IMPORTED_MODULE_0__["default"](req, strUrl, {
                webAbsoluteUrl: this._webAbsoluteUrl || this._webServerRelativeUrl,
                isCanaryRequest: this._requestCanaryForAuth
            });
            var status_1 = serverData_1.getStatus();
            var rumOne = _ms_odsp_utilities_lib_logging_rumone_RUMOneLogger__WEBPACK_IMPORTED_MODULE_4__["RUMOneLogger"].getRUMOneLogger();
            var apiEndTime = Date.now();
            if (rumOne) {
                var apiData = new _ms_odsp_utilities_lib_logging_rumone_APICallPerformanceData__WEBPACK_IMPORTED_MODULE_3___default.a(strUrl, Number(req.getResponseHeader('SPClientServiceRequestDuration')), req.getResponseHeader('SPRequestGuid'), status_1, startTime, new Date().toISOString());
                rumOne.writeAPICallPerformanceData(apiData); // log a API call perf data object for each API call before EUPL complete
                rumOne.saveTempData('appDataFetchEnd', apiEndTime); // Record the last API call end time as app data fetch end
            }
            var shouldRedirectToErrorCustomPromptLocation = !noRedirect && serverData_1.shouldRedirectToErrorCustomPromptLocation();
            if (this._requestCanaryForAuth) {
                this._requestCanaryForAuth = false;
                if (status_1 === 403) {
                    var redirectUrl = serverData_1.getRedirectLoginPageUrl();
                    try {
                        if (shouldRedirectToErrorCustomPromptLocation) {
                            window.location.href = serverData_1.getRedirectToErrorCustomPromptLocation();
                        }
                        else {
                            failureCallback(serverData_1);
                        }
                    }
                    catch (e) {
                        // ignore
                    }
                    if (redirectUrl && !noRedirect) {
                        window.location.href = redirectUrl;
                    }
                }
                else {
                    var redirectUrl = serverData_1.getAccessDeniedRedirectUrl();
                    // we got form digest, so user is authenticated, they just don't have access to call the API requested
                    // let data source know about the error so it get properly accounted
                    try {
                        failureCallback(serverData_1);
                    }
                    catch (e) {
                        // ignore
                    }
                    if (redirectUrl && !noRedirect) {
                        if (this._engagement) {
                            this._engagement.logData({
                                name: "AccessDeniedRedirect",
                                isIntentional: false,
                                extraData: {
                                    originalOperation: this._operationName || ''
                                }
                            });
                        }
                        window.location.href = redirectUrl;
                    }
                }
                return;
            }
            if (status_1 === 200 || status_1 === 201 || status_1 === 204) { // success case
                successCallback(serverData_1);
                return;
            }
            else if (status_1 === 403) { // authentication required
                ServerConnection._requestDigestPromise = undefined;
                if (noRedirect) {
                    this._ensureRequestDigestWorker(undefined, function () { return failureCallback(serverData_1); }); // call Canary to check if the user has already signed in or ot.
                }
                else {
                    if (shouldRedirectToErrorCustomPromptLocation) {
                        window.location.href = serverData_1.getRedirectToErrorCustomPromptLocation();
                    }
                    else {
                        this._ensureRequestDigestWorker(undefined);
                    }
                }
                return;
            }
            else if (status_1 === 401) {
                if (shouldRedirectToErrorCustomPromptLocation) {
                    window.location.href = serverData_1.getRedirectToErrorCustomPromptLocation();
                }
            }
            failureCallback(serverData_1);
        }
        else {
            failureCallback(undefined, new _ms_utilities_error_lib_ApiError__WEBPACK_IMPORTED_MODULE_8__["ApiError"]({
                code: 'RequestAborted',
                isExpected: true
            }));
        }
    };
    /** Attempts to load or refresh the cached form digest with the params form digest data. */
    ServerConnection.prototype._tryLoadDigest = function (formDigest) {
        if (ServerConnection._isValidFormDigest(formDigest) && !_ms_odsp_utilities_lib_killswitch_Killswitch__WEBPACK_IMPORTED_MODULE_7__["Killswitch"].isActivated('0BD8A6FF-5CA5-45F8-BE49-C60C2C417F38', '07/08/2019', 'Refresh cached form digest the moment we get a valid one from params')) {
            ServerConnection._formDigests[this._webServerRelativeUrl] = formDigest;
            return;
        }
        // should start using the params data when:
        // params has valid form digest data and
        // - the cached form digest data is invalid or expired or
        // - the params digest data is fresher that the cached data.
        var cachedFormDigest = ServerConnection._formDigests[this._webServerRelativeUrl];
        if (ServerConnection._isValidFormDigest(formDigest) &&
            (!ServerConnection._isValidFormDigest(cachedFormDigest) ||
                (cachedFormDigest &&
                    (ServerConnection._useServerTimeExpirationCheck() ?
                        new Date(cachedFormDigest.serverTime).getTime() < new Date(formDigest.serverTime).getTime() :
                        cachedFormDigest.updateFormDigestPageLoaded.getTime() < formDigest.updateFormDigestPageLoaded.getTime())))) {
            ServerConnection._formDigests[this._webServerRelativeUrl] = formDigest;
        }
    };
    ServerConnection._formDigests = {};
    ServerConnection._requestDigestPromise = undefined;
    return ServerConnection;
}());
/* harmony default export */ __webpack_exports__["default"] = (ServerConnection);
//# sourceMappingURL=ServerConnection.js.map

/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: ApplicationCustomizerContext, BaseApplicationCustomizer, ApplicationAccessor, _DialogManagerConfiguration, _SearchQueryManager, PlaceholderContent, PlaceholderName, _Placeholder, PlaceholderProvider, _PlaceholderManager, BaseApplication, _OnBeforeNavigationEventName, BaseApplicationContext, _ApplicationManager, _Navigator, _NavigationOperation, _NavigationUnsupportedReason, _NavigationDataError, _NavigationErrorCode, _PrefetchedDataEventArgs, _ApplicationLoadType, _SPThemeProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _extensibility_ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extensibility/ApplicationCustomizerContext */ "L9BA");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApplicationCustomizerContext", function() { return _extensibility_ApplicationCustomizerContext__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _extensibility_BaseApplicationCustomizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extensibility/BaseApplicationCustomizer */ "5aZ1");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseApplicationCustomizer", function() { return _extensibility_BaseApplicationCustomizer__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _extensibility_ApplicationAccessor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./extensibility/ApplicationAccessor */ "75qc");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApplicationAccessor", function() { return _extensibility_ApplicationAccessor__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _extensibility_DialogManagerConfiguration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extensibility/DialogManagerConfiguration */ "7Cl3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_DialogManagerConfiguration", function() { return _extensibility_DialogManagerConfiguration__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _extensibility_SearchQueryManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./extensibility/SearchQueryManager */ "efvT");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SearchQueryManager", function() { return _extensibility_SearchQueryManager__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _extensibility_placeholder_PlaceholderContent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./extensibility/placeholder/PlaceholderContent */ "DXcd");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaceholderContent", function() { return _extensibility_placeholder_PlaceholderContent__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _extensibility_placeholder_PlaceholderName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./extensibility/placeholder/PlaceholderName */ "Cs6k");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaceholderName", function() { return _extensibility_placeholder_PlaceholderName__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _extensibility_placeholder_Placeholder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./extensibility/placeholder/Placeholder */ "jZLx");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_Placeholder", function() { return _extensibility_placeholder_Placeholder__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _extensibility_placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./extensibility/placeholder/PlaceholderProvider */ "/Kpt");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaceholderProvider", function() { return _extensibility_placeholder_PlaceholderProvider__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _extensibility_placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./extensibility/placeholder/PlaceholderManager */ "/HB6");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_PlaceholderManager", function() { return _extensibility_placeholder_PlaceholderManager__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _BaseApplication__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./BaseApplication */ "n9Iz");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseApplication", function() { return _BaseApplication__WEBPACK_IMPORTED_MODULE_10__["default"]; });

/* harmony import */ var _navigator_OnBeforeNavigationEventName__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./navigator/OnBeforeNavigationEventName */ "JwFY");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_OnBeforeNavigationEventName", function() { return _navigator_OnBeforeNavigationEventName__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _BaseApplicationContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./BaseApplicationContext */ "93Rs");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseApplicationContext", function() { return _BaseApplicationContext__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _ApplicationManager__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ApplicationManager */ "Q81X");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ApplicationManager", function() { return _ApplicationManager__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _navigator_Navigator__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./navigator/Navigator */ "2fZ3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_Navigator", function() { return _navigator_Navigator__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/* harmony import */ var _navigator_INavigationResult__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./navigator/INavigationResult */ "TNAb");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_NavigationOperation", function() { return _navigator_INavigationResult__WEBPACK_IMPORTED_MODULE_15__["NavigationOperation"]; });

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

/* harmony import */ var _navigator_NavigationDataError__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./navigator/NavigationDataError */ "SClb");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_NavigationDataError", function() { return _navigator_NavigationDataError__WEBPACK_IMPORTED_MODULE_16__["default"]; });

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

/* harmony import */ var _navigator_PrefetchedDataEventArgs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./navigator/PrefetchedDataEventArgs */ "n9H6");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_PrefetchedDataEventArgs", function() { return _navigator_PrefetchedDataEventArgs__WEBPACK_IMPORTED_MODULE_17__["default"]; });

/* harmony import */ var _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ApplicationLoadType */ "fBGb");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ApplicationLoadType", function() { return _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_18__["ApplicationLoadType"]; });

/* harmony import */ var _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pageChrome/SPThemeProvider */ "6GSH");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPThemeProvider", function() { return _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_19__["default"]; });

/**
 * SharePoint Framework support for building and extending client-side applications.
 *
 * @packagedocumentation
 */
// Application Customizer





// Placeholders





// Base application









// Page Chrome



/***/ }),

/***/ "n9H6":
/*!**************************************************!*\
  !*** ./lib/navigator/PrefetchedDataEventArgs.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
// Copyright (c) Microsoft. All rights reserved.


/**
 * Arguments for a prefetched data event.
 *
 * @internal
 */
var PrefetchedDataEventArgs = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PrefetchedDataEventArgs, _super);
    /**
     * Initializes a new instance of the PrefetchedDataEventArgs class
     * @param appId - Represents the application Id
     * @param url - Represents the page url
     * @param data - Represents the payload
     */
    function PrefetchedDataEventArgs(appId, url, data) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(appId, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(url, 'url');
        _this = _super.call(this) || this;
        _this.applicationId = appId;
        _this.url = url;
        _this.data = data;
        return _this;
    }
    return PrefetchedDataEventArgs;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["SPEventArgs"]));
/* harmony default export */ __webpack_exports__["default"] = (PrefetchedDataEventArgs);


/***/ }),

/***/ "n9Iz":
/*!********************************!*\
  !*** ./lib/BaseApplication.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _ms_sp_suite_nav__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ms/sp-suite-nav */ "6iXJ");
/* harmony import */ var _ms_sp_suite_nav__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_suite_nav__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ms/uifabric-styling-bundle */ "fglE");
/* harmony import */ var _ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _LegacyFabric6Function__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./LegacyFabric6Function */ "mBgx");
/* harmony import */ var _BaseApplicationContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./BaseApplicationContext */ "93Rs");
/* harmony import */ var _frameworkPlaceholders_AadPlaceholderManager__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./frameworkPlaceholders/AadPlaceholderManager */ "8Idf");
/* harmony import */ var _ms_sp_load_themed_styles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ms/sp-load-themed-styles */ "5z2F");
/* harmony import */ var _ms_sp_load_themed_styles__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_load_themed_styles__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pageChrome/SPThemeProvider */ "6GSH");
/* harmony import */ var _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ApplicationLoadType */ "fBGb");
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./common/Flights */ "w4+A");
/* harmony import */ var _ApplicationManager__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ApplicationManager */ "Q81X");

















var SUITE_NAV_USE_SPO_BEHAVIOR_KILL_SWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Guid"].parse('22F8084E-9DEB-4642-B63E-E70A7F87C998');
var USE_FABRIC_6_THEME_KILL_SWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Guid"].parse('daea60a7-5d4b-4c49-b79c-22ace7a63d5c');
var INJECT_GLOBAL_SETTINGS_KILL_SWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Guid"].parse('ced512a8-994b-4218-89b5-9e6b861bcd92');
// Qos constants
var loadQosScenarioName = 'BaseApplication.load';
var renderQosScenarioName = 'BaseApplication.render';
var unloadQosScenarioName = 'BaseApplication.unload';
// tslint:disable-next-line: no-any
function addChangeCallback(object, propertyName, onChange) {
    var hiddenPropertyName = "_sp_workaround" + propertyName;
    object[hiddenPropertyName] = object[propertyName];
    Object.defineProperty(object, propertyName, {
        set: function (value) {
            object[hiddenPropertyName] = value;
            if (onChange) {
                onChange(object[hiddenPropertyName]);
            }
        },
        get: function () { return object[hiddenPropertyName]; }
    });
}
/**
 * This is the system base class for client-side applications.  It manages the overall
 * life cycle of your application, and is the first entry point for your code to start
 * executing when the page loads.  The two main events are onLoad() which occurs first,
 * and onRender() which occurs after the application manager has initialized the environment
 * and completed rendering the page chrome.
 *
 * @alpha
 */
var BaseApplication = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseApplication, _super);
    function BaseApplication() {
        var _this = _super.call(this) || this;
        _this._handleThemeChange = function (changedTheme) {
            var expectedSemanticColors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, changedTheme.semanticColors, Object(_LegacyFabric6Function__WEBPACK_IMPORTED_MODULE_9__["makeSemanticColorsFromPalette"])(changedTheme.palette, false, false));
            if (!Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__["isEqual"])(changedTheme.semanticColors, expectedSemanticColors)
                || !Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__["isEqual"])(changedTheme.effects, _ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["DefaultEffects"])) {
                Object(_ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["loadTheme"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, changedTheme, { semanticColors: expectedSemanticColors, effects: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, changedTheme.effects, _ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["DefaultEffects"]) }));
            }
        };
        // tslint:disable-next-line:no-string-literal
        _this['__type'] = 'BaseApplication';
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPKillSwitch"].isActivated(INJECT_GLOBAL_SETTINGS_KILL_SWITCH, '11/23/2019', 'InjectFabricGlobalSettings')) {
            addChangeCallback(Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__["get"])(window, '__globalSettings__'), 'customizations', function (value) { return _this._handleThemeChange(value.settings.theme); });
            addChangeCallback(Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__["get"])(window, '__globalSettings__.customizations'), 'settings', function (value) { return _this._handleThemeChange(value.theme); });
            addChangeCallback(Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_6__["get"])(window, '__globalSettings__.customizations.settings'), 'theme', function (value) { return _this._handleThemeChange(value); });
        }
        return _this;
    }
    Object.defineProperty(BaseApplication.prototype, "domElement", {
        /**
         * Returns the DOM element where the application is expected to render its content.
         * The domElement will be undefined until the onRender() event occurs.
         *
         * @remarks
         * IMPORTANT: The application should not access DOM elements outside of this subtree,
         * as they are system-defined and may change over time.
         *
         * Throws an error if the domElement is undefined.
         */
        get: function () {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNotNullOrUndefined(this.context, 'context');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNotDisposed(this.context, 'context');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNotNullOrUndefined(this.context.chrome, 'chrome');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNotDisposed(this.context.chrome, 'chrome');
            return this.context.chrome.appDiv;
        },
        set: function (value) {
            throw new Error('The property cannot be assigned because it is read-only');
        },
        enumerable: true,
        configurable: true
    });
    /**
     * RESERVED FOR INTERNAL USAGE. This method is invoked automatically by the application manager.
     * The application code should not call it directly.
     *
     * @internal
     */
    BaseApplication.prototype._load = function (contextParameters) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](loadQosScenarioName);
        try {
            var applicationContext = this._getApplicationContext(contextParameters);
            this._initializeContext(applicationContext);
            var aadPlaceholderManager = new _frameworkPlaceholders_AadPlaceholderManager__WEBPACK_IMPORTED_MODULE_11__["default"]();
            aadPlaceholderManager.setUpTokenAcquistionFailurePlaceholder(this, this.context.serviceScope);
            return this.onLoad()
                .then(function () {
                qosMonitor.writeSuccess();
            }).catch(function (e) {
                qosMonitor.writeExpectedFailure('onLoadFailure', e);
                throw e;
            });
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('SyncError', error);
            return Promise.reject(error);
        }
    };
    /**
     * RESERVED FOR INTERNAL USAGE. This method is invoked automatically by the application manager
     * to render the application.
     * The application code should not call it directly.
     *
     * @internal
     */
    BaseApplication.prototype._render = function () {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](renderQosScenarioName);
        try {
            // We load styles async by default, which is good for performance.
            // At this point in time we want to ensure that all styles in buffer are mounted before
            // rendering the app.
            _ms_sp_load_themed_styles__WEBPACK_IMPORTED_MODULE_12__["flush"]();
            this.context.chrome.show();
            var isFullPageLoad = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["_SPLoaderFlights"]._useNewBootSequence() && _common_Flights__WEBPACK_IMPORTED_MODULE_15__["Flights"].useNewChromeSequence() ?
                this.context.loadType === _ApplicationLoadType__WEBPACK_IMPORTED_MODULE_14__["ApplicationLoadType"].FullPageLoad :
                true;
            var suiteNavManager = new _ms_sp_suite_nav__WEBPACK_IMPORTED_MODULE_7__["SuiteNavManager"](this.context.chrome.suiteNavDiv, this.context.serviceScope, isFullPageLoad);
            this.context.initializeSuiteNavManager(suiteNavManager);
            var config = this.suiteNavConfiguration();
            if (!config.isSuiteNavDisabled()) {
                var useNewFlow = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPFlight"].isEnabled(1309 /* SPClientSuiteNavCommon */)
                    && config.isSuiteNavLoadingDeferred();
                if (useNewFlow) {
                    suiteNavManager.loadSuiteNavNewFlow(config); // uses new suite nav flow
                }
                else {
                    suiteNavManager.loadSuiteNav(config);
                }
            }
            this.onRender();
            if (_common_Flights__WEBPACK_IMPORTED_MODULE_15__["Flights"].delayExtensionsLoading &&
                !this.context.delayExtensionsLoading &&
                this.context.navigator) {
                this.context.navigator._loadApplicationCustomizers(this.context.preloadedData);
            }
            qosMonitor.writeSuccess();
        }
        catch (error) {
            qosMonitor.writeExpectedFailure('onRenderError', error);
        }
    };
    /**
     * RESERVED FOR INTERNAL USAGE. This method is invoked by the application manager
     * to unload the application. The page chrome is still available at this point
     * The application code should not call it directly.
     *
     * @internal
     */
    BaseApplication.prototype._unload = function () {
        if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["_SPLoaderFlights"]._useNewBootSequence()) {
            return;
        }
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](unloadQosScenarioName);
        try {
            this.onUnload();
            qosMonitor.writeSuccess();
        }
        catch (error) {
            qosMonitor.writeExpectedFailure('onUnloadError', error);
        }
    };
    /**
     * RESERVED FOR INTERNAL USAGE. This method is invoked automatically by the application manager
     * to load the application specific theme.
     * The application code should not call it directly.
     *
     * @internal
     */
    BaseApplication.prototype._loadTheme = function () {
        var _this = this;
        // When cleaning up the killswitch, keep the check for isChromelessApplication here and remove the check from
        // other code calling this function
        if (!_ApplicationManager__WEBPACK_IMPORTED_MODULE_16__["default"]._isChromelessApplication(this.componentId)) {
            Object(_ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["registerOnThemeChangeCallback"])(this._handleThemeChange);
            var themeProvider = this._getThemeProvider();
            themeProvider.loadThemedStyles().then(function () {
                if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPKillSwitch"].isActivated(USE_FABRIC_6_THEME_KILL_SWITCH, '11/21/2019', 'UseFabric6Theme')) {
                    // Workaround to use fabric 6's theme in fabric 7.
                    // makeSemanticColorsFromPalette is copied from fabric 6's branch.
                    _this._handleThemeChange(Object(_ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["getTheme"])());
                }
            });
        }
    };
    /**
     * RESERVED FOR INTERNAL USAGE.
     * Internal API to dispose the application.
     * See onDispose for more details
     */
    BaseApplication.prototype.dispose = function () {
        if (_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["_SPLoaderFlights"]._useNewBootSequence() && this.context.chrome) {
            this.context.chrome.hide();
        }
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPKillSwitch"].isActivated(USE_FABRIC_6_THEME_KILL_SWITCH, '11/21/2019', 'UseFabric6Theme')) {
            Object(_ms_uifabric_styling_bundle__WEBPACK_IMPORTED_MODULE_8__["removeOnThemeChangeCallback"])(this._handleThemeChange);
        }
        this.onDispose();
        _super.prototype.dispose.call(this);
    };
    /**
     * Returns browser compatibility information for the application.
     *
     * @remarks
     * The SharePoint Framework tracks browser compatibility for the application and the framework.
     * Taken together, this information will determine the experience for the end user.
     *
     * Implement this method to report the level of support that your application provides for the current web browser.
     * Since the User Agent field is impersonated by various browsers, it’s recommended for the implementation to test
     * individual API features rather than trying to identify specific releases of browsers.
     */
    BaseApplication.prototype.getBrowserCompatibility = function () {
        return {
            supportLevel: 0 /* None */,
            warning: undefined
        };
    };
    /**
     * This virtual function returns the default configuration and can be configured by applications
     * when required.
     */
    BaseApplication.prototype.suiteNavConfiguration = function () {
        var config = new _ms_sp_suite_nav__WEBPACK_IMPORTED_MODULE_7__["SuiteNavManagerConfiguration"](this._getSuiteNavManagerConfigurationData());
        config.updateSuiteNavHeight = this._suiteNavHeightHandler.bind(this);
        return config;
    };
    BaseApplication.prototype.delayExtensionsLoading = function () {
        return _common_Flights__WEBPACK_IMPORTED_MODULE_15__["Flights"].delayExtensionsLoading && this.context.delayExtensionsLoading;
    };
    /**
     * This virtual function returns the default application context and can be configured by applications
     * when required.
     *
     * @internal
     */
    BaseApplication.prototype._getApplicationContext = function (contextParameters) {
        return new _BaseApplicationContext__WEBPACK_IMPORTED_MODULE_10__["default"](contextParameters);
    };
    /**
     * This virtual function returns the default application theme provider and can be overridden by applications
     * when required.
     *
     * @internal
     */
    BaseApplication.prototype._getThemeProvider = function () {
        return new _pageChrome_SPThemeProvider__WEBPACK_IMPORTED_MODULE_13__["default"](this.context.serviceScope);
    };
    /**
     * This life cycle event occurs immediately after the application manager has loaded the application,
     * before the DOM is constructed.  Applications can use this event to load scripts
     * or start asynchronous operations that need to occur early in the lifecycle.
     * Inside the onLoad() event, applications may also modify the rendering of various
     * page chrome elements, for example by calling this.context.suiteNav.setComponentVisibility(false).
     */
    BaseApplication.prototype.onLoad = function () {
        // (implemented by subclass)
        return Promise.resolve();
    };
    /**
     * This lifecycle event occurs before hiding the application chrome. At this point the application still has
     * the DOM element available and can perform specific operations before the chrome is hidden from the view-port
     */
    BaseApplication.prototype.onUnload = function () {
        // (implemented by subclass)
    };
    /**
     * This lifecycle event occurs after the application manager has constructed the DOM for the page chrome.
     * At this time, the domElement property will be initialized, and the application can begin
     * rendering its own DOM elements.
     */
    BaseApplication.prototype.onRender = function () {
        // (implemented by subclass)
    };
    /**
     * This API is called at the end of the application lifecycle. It should be used to dispose any local
     * resources (i.e. DOM elements) that the application is holding onto.
     *
     * This API is expected to be called in scenarios like cross-application navigation
     * i.e. the host is transitioning from one application to another and disposes the application that is being
     * transitioned out.
     */
    BaseApplication.prototype.onDispose = function () {
        // (implemented by subclass)
    };
    /**
     * Provides the data necessary to construct an instance of SuiteNavManagerConfiguration
     * @internal
     */
    BaseApplication.prototype._getSuiteNavManagerConfigurationData = function () {
        var pageContext = this.context.pageContext;
        var webTemplateId;
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPKillSwitch"].isActivated(SUITE_NAV_USE_SPO_BEHAVIOR_KILL_SWITCH, '9/08/2017', 'SuiteNavUseSPOBehaviors')) {
            webTemplateId = pageContext.legacyPageContext.webTemplateId;
        }
        var disableSuiteNavSearchBox = false;
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Guid"].parse('E0B09CB0-1731-4AEC-BD7D-5F8EE2A10737'), '10/08/2019', 'Disable suite nav search box based on pagecontext setting')) {
            disableSuiteNavSearchBox = pageContext.legacyPageContext.searchBoxInNavBar === 3 /* Hidden */;
        }
        return {
            currentUICultureName: pageContext.cultureInfo.currentUICultureName,
            disableSuiteNav: this._shouldDisableSuiteNav(),
            settingsData: pageContext.legacyPageContext.MenuData ?
                pageContext.legacyPageContext.MenuData.SettingsData :
                undefined,
            signoutUrl: pageContext.legacyPageContext.MenuData ?
                pageContext.legacyPageContext.MenuData.SignOutUrl :
                undefined,
            siteClientTag: pageContext.legacyPageContext.siteClientTag,
            systemUserKey: pageContext.legacyPageContext.systemUserKey,
            userDisplayName: pageContext.user.displayName,
            webServerRelativeUrl: pageContext.web.serverRelativeUrl,
            webTemplateId: webTemplateId,
            disableSuiteNavSearchBox: disableSuiteNavSearchBox
        };
    };
    /**
     * Causes the navigator to navigate to a new page
     *
     * @remarks
     * This will be removed soon. Please use navigator from application context
     * to invoke public APIs
     */
    BaseApplication.prototype._navigate = function (url, props) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNonemptyString(url, 'url');
        return this.context.navigator.navigate(url, props).then(function (res) {
            // When the flight is off we need to re-load the application customizers after the navigation has happened.
            // This is to map with the behavior for the first-time render of the application
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["_SPLoaderFlights"]._useNewBootSequence()) {
                _this.context.navigator._loadApplicationCustomizers(res.preloadedData);
            }
            return res;
        });
    };
    /**
     * Allows the navigator to reinitialize SPFx components with `_IPreloadedData`.
     *
     * @remarks
     * This will be removed soon. Please use navigator from application context
     * to invoke public APIs
     *
     * Navigation is an async operation but calling this API ignores the promise.
     * This is used by List application to change the context, so the framework will send the appropriate events
     * for the context change, but it doesn't impact the application.
     */
    BaseApplication.prototype._navigateToPreloadedData = function (preloadedData) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNotNullOrUndefined(preloadedData, 'preloadedData');
        this.context.navigator.navigateToPreloadedData(preloadedData).then(function () {
            // When the flight is off we need to re-load the application customizers after the navigation has happened.
            // This is to map with the behavior for the first-time render of the application
            if (!_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["_SPLoaderFlights"]._useNewBootSequence()) {
                _this.context.navigator._loadApplicationCustomizers(preloadedData);
            }
        });
    };
    /**
     * Invalidates a cached resource by its URL. Any subsequent request for the resource
     * will be fetched from its origin and recached.
     *
     * @param url - URL to invalidate
     *
     * @remarks
     * This will be removed soon. Please use navigator from application context
     * to invoke public APIs
     */
    BaseApplication.prototype._invalidate = function (url) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["Validate"].isNonemptyString(url, 'url');
        return this.context.navigator.invalidate(url);
    };
    /**
     * Raises an event for a layout change.
     */
    BaseApplication.prototype.raiseLayoutChangedEvent = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["_SPEventManager"].instance.raiseEvent(BaseApplication._layoutChangedEventName, {});
    };
    BaseApplication.prototype._shouldDisableSuiteNav = function () {
        var urlQueryParams = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_3__["UrlQueryParameterCollection"](window.location.href);
        return window.location.hostname === 'localhost' ||
            urlQueryParams.getValue('disableSuiteNav') === 'true' ?
            true :
            false;
    };
    /**
     * This is a handler to update Suite Nav container height, when sp-suite-nav wants to update it.
     *
     * @param height - Height of the suite nav bar container to be set.
     */
    BaseApplication.prototype._suiteNavHeightHandler = function (height) {
        if (this.context.chrome) {
            this.context.chrome.changeSuiteNavHeight(height);
        }
    };
    /**
     * SPEvent name for page navigation.
     * @internal
     */
    BaseApplication._navigatedEventName = 'application.navigatedEvent';
    /**
     * SPEvent name for layout changes.
     * @internal
     */
    BaseApplication._layoutChangedEventName = 'application.layoutChangedEvent';
    /**
     * SPEvent name for prefetched data availability.
     * @internal
     */
    BaseApplication._prefetchedDataEventName = 'application.prefetchedDataEvent';
    /**
     * SPEvent name for application pre in-place navigation.
     * @internal
     */
    BaseApplication._onBeforeNavigationEventName = 'application.onBeforeNavigationEventName';
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["override"]
    ], BaseApplication.prototype, "dispose", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "getBrowserCompatibility", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "suiteNavConfiguration", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "delayExtensionsLoading", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "_getApplicationContext", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "_getThemeProvider", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "onLoad", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "onUnload", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "onRender", null);
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], BaseApplication.prototype, "onDispose", null);
    return BaseApplication;
}(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));
/* harmony default export */ __webpack_exports__["default"] = (BaseApplication);


/***/ }),

/***/ "nv8F":
/*!*********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/tslib/1.9.3/node_modules/tslib/tslib.es6.js ***!
  \*********************************************************************************************************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (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__, "__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)
            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 __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 };
}


/***/ }),

/***/ "o+Qb":
/*!*************************************************!*\
  !*** ./lib/navigator/NavigationDataProvider.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _NavigationDataError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NavigationDataError */ "SClb");
// Copyright (c) Microsoft. All rights reserved.




/**
 * Navigation Data Provider for SPFx applications.
 * It fetches data required to initiate an SPFx Navigation operation. It also caches the navigation
 * data when appropriate
 *
 * @internal
 */
var NavigationDataProvider = /** @class */ (function () {
    function NavigationDataProvider(serviceScope, validator) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(validator, 'validator');
        this._spHttpClient = serviceScope.consume(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__["SPHttpClient"].serviceKey);
        this._dataValidator = validator;
    }
    Object.defineProperty(NavigationDataProvider.prototype, "buildId", {
        get: function () {
            return this._buildId;
        },
        /**
         * Keeps track of the build id the application is bootstrapped with.
         * Used to detect when the build id change while the app is
         * running, and to invalidate manifest caches containing the old build id.
         *
         * @param buildId - Build id the application was bootstrapped with.
         */
        set: function (buildId) {
            this._buildId = buildId;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Issues a request to get data association with a given url
     *
     * @param url - URL of the page to fetch data for
     * @param requestType - The request type
     * @param props - Optional Navigation property bag
     *
     * @returns - A navigation data response promise
     */
    NavigationDataProvider.prototype.getData = function (url, props) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(url, 'url');
        return _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_2__["_SPLoaderFlights"]._useNewBootSequence() ?
            this._getStore().then(function (store) { return store.getData(url, props); }) :
            Promise.resolve({
                preloadedData: this._fetchData(url)
            });
    };
    /**
     * Invalidates a cached resource by its URL. Any subsequent request for the resource
     * will be fetched from its origin and recached.
     *
     * @param url - URL to invalidate
     */
    NavigationDataProvider.prototype.invalidate = function (url) {
        return this._getStore().then(function (store) {
            store.remove(url);
        });
    };
    NavigationDataProvider.prototype._getStore = function () {
        var _this = this;
        if (this._navigationStore) {
            return Promise.resolve(this._navigationStore);
        }
        return this._navigationStorePromise || (this._navigationStorePromise = __webpack_require__.e(/*! import() | sp-navigation-datastore */ "sp-navigation-datastore").then(__webpack_require__.bind(null, /*! ./NavigationDataStore */ "oPyX"))
            .then(function (dataStore) {
            _this._navigationStore = new dataStore.default(NavigationDataProvider.storeKey, NavigationDataProvider.storeBuildIdKey, _this._buildId, function (url, headers) {
                return _this._fetchData(url, headers);
            }, _this._dataValidator);
            return _this._navigationStore;
        }));
    };
    /**
     * Loads a page from SharePoint.
     *
     * @param url - URL of the page to load.
     * @param requestHeaders - Optional request headers
     * @return Promise with the pertinent data for the request.
     */
    NavigationDataProvider.prototype._fetchData = function (url, requestHeaders) {
        // Using ?as=json to ensure that the browser doesn't return a cached request for the HTML
        return this._spHttpClient.get(url + (url.indexOf('?') === -1 ? '?' : '&') + 'as=json', _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__["SPHttpClient"].configurations.v1, requestHeaders ? { headers: requestHeaders } : undefined).then(function (response) {
            if (!response.ok) {
                throw _NavigationDataError__WEBPACK_IMPORTED_MODULE_3__["default"].createNavigationError(_NavigationDataError__WEBPACK_IMPORTED_MODULE_3__["NavigationErrorCode"].fetchData, new Error(response.statusMessage));
            }
            else {
                return response.json().catch(function (error) {
                    throw _NavigationDataError__WEBPACK_IMPORTED_MODULE_3__["default"].createNavigationError(_NavigationDataError__WEBPACK_IMPORTED_MODULE_3__["NavigationErrorCode"].parseData, error);
                });
            }
        });
    };
    NavigationDataProvider.storeKey = 'sp-application-base:NavigationDataStore';
    NavigationDataProvider.storeBuildIdKey = 'sp-application-base:NavigationDataStore:buildId';
    return NavigationDataProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (NavigationDataProvider);


/***/ }),

/***/ "oN+8":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/set-version/7.0.2/node_modules/@uifabric/set-version/lib/index.js ***!
  \*****************************************************************************************************************************************************************/
/*! exports provided: setVersion */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _setVersion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setVersion */ "rN9w");
/* 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');
//# sourceMappingURL=index.js.map

/***/ }),

/***/ "oQJL":
/*!***************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/uri/Uri.js ***!
  \***************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/uri/Uri.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.Uri;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "pgz/":
/*!**************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/ThemeCache.js ***!
  \**************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var BaseDataStore_1 = __webpack_require__(/*! ../models/store/BaseDataStore */ "IveV");
var DataStoreCachingType_1 = __webpack_require__(/*! ../models/store/DataStoreCachingType */ "y91V");
var THEME_CACHE_VERSION = '1.7';
var THEME_CACHE_PREFIX = 'odTheme';
var DATA_KEY = 'Data';
var TOKEN_KEY = 'CacheToken';
var VERSION_KEY = 'CacheVersion';
/**
 * Utility methods for caching theme data.
 */
var ThemeCache = /** @class */ (function () {
    function ThemeCache() {
    }
    /**
     * Clears the theme cache.
     */
    ThemeCache.clearThemeCache = function () {
        "use strict";
        var ds = ThemeCache.getThemeDataStore();
        ds.remove(DATA_KEY);
        ds.remove(TOKEN_KEY);
        ds.remove(VERSION_KEY);
    };
    /**
     * Reads the cached theme, if the cacheToken is compatible.
     * @param {string} cacheToken The cached value will only be returned if it has the same cache token.
     */
    ThemeCache.getCachedTheme = function (cacheToken) {
        "use strict";
        var cachedTheme;
        var ds = ThemeCache.getThemeDataStore();
        try {
            // Make sure the data was cached with the expected version and
            // the current theme cache token. Otherwise, return undefined.
            if (cacheToken === ds.getValue(TOKEN_KEY) &&
                THEME_CACHE_VERSION === ds.getValue(VERSION_KEY)) {
                cachedTheme = ds.getValue(DATA_KEY);
            }
        }
        catch (exReadCache) {
            // Ignore.
        }
        return cachedTheme;
    };
    /**
     * Updates the theme data in the cache.
     * @param {IThemeData} themeData The new theme data to cache.
     */
    ThemeCache.updateThemeCache = function (themeData, cacheToken) {
        "use strict";
        var ds = ThemeCache.getThemeDataStore();
        ds.setValue(DATA_KEY, themeData);
        ds.setValue(TOKEN_KEY, cacheToken || themeData.cacheToken);
        ds.setValue(VERSION_KEY, THEME_CACHE_VERSION);
    };
    /**
     * Returns an instance of the supporting data store for this cache.
     */
    ThemeCache.getThemeDataStore = function () {
        "use strict";
        return new BaseDataStore_1.default(THEME_CACHE_PREFIX, DataStoreCachingType_1.default.local);
    };
    return ThemeCache;
}());
exports.default = ThemeCache;
//# sourceMappingURL=ThemeCache.js.map

/***/ }),

/***/ "q/xN":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/async/Retry.js ***!
  \*******************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var Signal_1 = __webpack_require__(/*! ./Signal */ "f2ns");
/**
 * Retry allows you to invoke a callback a configurable number of times before giving up.
 */
function Retry(config) {
    var adjustRetries = config.adjustRetries, async = config.async, beforeRetry = config.beforeRetry, callback = config.callback, _a = config.canRetry, canRetry = _a === void 0 ? function () { return true; } : _a, delay = config.delay, resetAttemptsOnRestart = config.resetAttemptsOnRestart, retries = config.retries, shouldRestart = config.shouldRestart;
    var attempts = 0;
    var promise;
    var signal = new Signal_1.default(function () {
        promise.cancel();
    });
    function onSuccess(value) {
        if (shouldRestart && shouldRestart()) {
            if (resetAttemptsOnRestart) {
                attempts = 0;
            }
            callCallback();
        }
        else {
            signal.complete(value);
        }
    }
    function onError(error) {
        if (adjustRetries) {
            retries = adjustRetries(error);
        }
        if (attempts < retries && canRetry(error)) {
            attempts++;
            if (beforeRetry) {
                beforeRetry();
            }
            if (typeof delay === 'number' && async) {
                async.setTimeout(callCallback, delay);
            }
            else {
                callCallback();
            }
        }
        else {
            signal.error(error);
        }
    }
    function callCallback() {
        promise = callback();
        promise.then(onSuccess, onError);
    }
    callCallback();
    return signal.getPromise();
}
exports.default = Retry;
//# sourceMappingURL=Retry.js.map

/***/ }),

/***/ "rN9w":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/set-version/7.0.2/node_modules/@uifabric/set-version/lib/setVersion.js ***!
  \**********************************************************************************************************************************************************************/
/*! exports provided: setVersion */
/***/ (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);
        }
    }
}
//# sourceMappingURL=setVersion.js.map

/***/ }),

/***/ "rdzh":
/*!********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/Manager.js ***!
  \********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
var deepCopy_1 = __webpack_require__(/*! @ms/utilities-objects/lib/deepCopy */ "Gnpm");
var maxBufferSize = 100;
function getStartDate() {
    if (window.performance && window.performance.timing && window.performance.timing.navigationStart) {
        return new Date(window.performance.timing.navigationStart);
    }
    else {
        return new Date();
    }
}
var PrivateManager = /** @class */ (function () {
    function PrivateManager() {
        this._handlers = [];
        this._buffer = [];
        this._validationLoggers = [];
        this._featureEnablers = [];
    }
    Object.defineProperty(PrivateManager.prototype, "startDate", {
        get: function () {
            return getStartDate();
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PrivateManager.prototype, "startTime", {
        get: function () {
            var startDate = this.startDate;
            return startDate.getTime();
        },
        enumerable: true,
        configurable: true
    });
    PrivateManager.prototype.getTime = function () {
        return (new Date()).getTime();
    };
    /** This is the overrideable clean string function. Return undefined to drop a parameter altogether. */
    PrivateManager.prototype.cleanString = function (str) {
        return str;
    };
    PrivateManager.prototype.addLogHandler = function (handler) {
        var handlers = this._handlers;
        var buffer = this._buffer;
        handlers.push(handler);
        // Return the buffer so the handler can get missed events
        return buffer.slice();
    };
    PrivateManager.prototype.removeLogHandler = function (handler) {
        var handlers = this._handlers;
        for (var x = 0; x < handlers.length; x++) {
            if (handlers[x] === handler) {
                // Remove the handler
                handlers.splice(x, 1);
                break;
            }
        }
    };
    PrivateManager.prototype.logEvent = function (event, eventType) {
        var buffer = this._buffer;
        var handlers = this._handlers;
        // Clone the object (do it natively because the browser can mark it as a type)
        var clonedEvent = Object.freeze({
            data: deepCopy_1.deepCopy(event.data),
            context: tslib_1.__assign({}, event.context),
            id: event.id,
            enabled: event.enabled,
            critical: event.critical,
            endTime: event.endTime,
            eventName: event.eventName,
            shortEventName: event.shortEventName,
            parentId: event.parentId,
            startTime: event.startTime,
            eventType: eventType,
            metadata: event.metadata,
            vector: event.vector,
            validationErrors: event.validationErrors,
            isEventTypePrefixingDisabled: event.isEventTypePrefixingDisabled
        });
        // Add to the buffer
        buffer.push(clonedEvent);
        if (buffer.length > maxBufferSize) {
            buffer.splice(1, Infinity);
            // Make sure we have a handler before the buffer is overrun
            if (handlers.length === 0) {
                _handleBaseLoggingError(new Error('Logging buffer overflow hit before any logging handler was registered'));
            }
        }
        // Let handlers know the log event has completed
        for (var x = 0; x < handlers.length; x++) {
            try {
                handlers[x](clonedEvent);
            }
            catch (e) {
                _handleBaseLoggingError(e);
            }
        }
    };
    PrivateManager.prototype.addValidationErrorLogger = function (validationLogger) {
        var validationLoggers = this._validationLoggers;
        validationLoggers.push(validationLogger);
    };
    PrivateManager.prototype.removeValidationErrorLogger = function (validationLogger) {
        var validationLoggers = this._validationLoggers;
        var index = validationLoggers.indexOf(validationLogger);
        if (index > -1) {
            validationLoggers.splice(index, 1);
        }
    };
    PrivateManager.prototype.logValidationError = function (event, type) {
        var validationLoggers = this._validationLoggers;
        for (var _i = 0, validationLoggers_1 = validationLoggers; _i < validationLoggers_1.length; _i++) {
            var validationLogger = validationLoggers_1[_i];
            try {
                validationLogger(event, type);
            }
            catch (e) {
                _handleBaseLoggingError(e);
            }
        }
    };
    PrivateManager.prototype.isFeatureEnabled = function (feature) {
        var featureEnablers = this._featureEnablers;
        for (var _i = 0, featureEnablers_1 = featureEnablers; _i < featureEnablers_1.length; _i++) {
            var featureEnabler = featureEnablers_1[_i];
            if (featureEnabler(feature)) {
                return true;
            }
        }
        return false;
    };
    PrivateManager.prototype.addFeatureEnabler = function (featureEnabler) {
        var featureEnablers = this._featureEnablers;
        featureEnablers.push(featureEnabler);
    };
    PrivateManager.prototype.removeFeatureEnabler = function (featureEnabler) {
        var featureEnablers = this._featureEnablers;
        var index = featureEnablers.indexOf(featureEnabler);
        if (index > -1) {
            featureEnablers.splice(index, 1);
        }
    };
    PrivateManager.prototype.getStack = function () {
        var error;
        try {
            var w = window;
            if (w.______ExpectedError______) {
                w.______ExpectedError______();
            }
        }
        catch (e) {
            error = e;
        }
        return error && error.stack || undefined;
    };
    return PrivateManager;
}());
/**
 * Creates a new, private manager with its own event queue and handlers.
 */
function createManager() {
    return new PrivateManager();
}
exports.createManager = createManager;
function createDefaultGlobalManager() {
    var globalManager;
    if (typeof window !== 'undefined') {
        globalManager = window.ODSP_TELEMETRY_MANAGER = window.ODSP_TELEMETRY_MANAGER || createManager();
    }
    else if (typeof self !== 'undefined') {
        globalManager = self.ODSP_TELEMETRY_MANAGER = self.ODSP_TELEMETRY_MANAGER || createManager();
    }
    else {
        globalManager = createManager();
    }
    return globalManager;
}
/**
 * Gets the default/fallback telemetry manager for the running application.
 */
exports.Manager = createDefaultGlobalManager();
function _handleBaseLoggingError(error) {
    // TODO: Log somewhere
}
//# sourceMappingURL=Manager.js.map

/***/ }),

/***/ "ryFB":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/TeachingBubble.styles.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: TeachingBubbleStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleStyles", function() { return TeachingBubbleStyles; });
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");

var TeachingBubbleStyles = function (props) {
    var hasCondensedHeadline = props.hasCondensedHeadline, hasSmallHeadline = props.hasSmallHeadline, theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    var headlineSize = fonts.medium.fontSize;
    var headlineWeight = office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold;
    if (!hasCondensedHeadline && !hasSmallHeadline) {
        headlineSize = fonts.xxLarge.fontSize;
        headlineWeight = office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].light;
    }
    return {
        headline: {
            fontSize: headlineSize,
            fontWeight: headlineWeight
        },
        footer: {
            selectors: {
                '.ms-Button:not(:first-child)': {
                    marginLeft: 20
                }
            }
        },
        closeButton: {
            backgroundColor: 'transparent',
            selectors: {
                '&:hover': {
                    backgroundColor: palette.themePrimary,
                    color: palette.black
                },
                '&:active': {
                    background: palette.themeDarkAlt,
                    color: palette.black
                }
            }
        }
    };
};
//# sourceMappingURL=TeachingBubble.styles.js.map

/***/ }),

/***/ "siCY":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/events/EventGroup.js ***!
  \*************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/events/EventGroup.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.default = pkg.EventGroup;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vFq2":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/utilities-objects/0.10.2/node_modules/@ms/utilities-objects/lib/assign.js ***!
  \*******************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
/**
 * @public
 */
function assign(base, extension) {
    return tslib_1.__assign(base, extension);
}
exports.assign = assign;
//# sourceMappingURL=assign.js.map

/***/ }),

/***/ "vlQI":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vlQI__;

/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "vt24":
/*!******************************************!*\
  !*** ./lib/pageChrome/SPMasterChrome.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _common_Flights__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/Flights */ "w4+A");
/* harmony import */ var _error_SPGlobalErrorHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/SPGlobalErrorHandler */ "1/3/");
// Copyright (c) Microsoft. All rights reserved.



var SPMasterChrome = /** @class */ (function () {
    function SPMasterChrome() {
        this._isVisible = false;
        this._isDisposed = false;
        this._createPageChrome();
    }
    /**
     * Shows the chrome.
     */
    SPMasterChrome.prototype.show = function () {
        if (!this._isDisposed && !this._isVisible) {
            document.body.appendChild(this._chromeDiv);
            this._isVisible = true;
        }
    };
    /**
     * Hides the chrome.
     */
    SPMasterChrome.prototype.hide = function () {
        if (!this._isDisposed && this._isVisible) {
            this._chromeDiv = document.body.removeChild(this._chromeDiv);
            this._isVisible = false;
        }
    };
    /**
     * Disposes the Chrome
     */
    SPMasterChrome.prototype.dispose = function () {
        if (!this._isDisposed) {
            this._chromeDiv = document.body.removeChild(this._chromeDiv);
            delete this._suiteNavDiv;
            delete this._chromeDiv;
            this._isDisposed = true;
        }
    };
    Object.defineProperty(SPMasterChrome.prototype, "chromeDiv", {
        /**
         * Gets the chrome div
         */
        get: function () {
            return this._chromeDiv;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPMasterChrome.prototype, "suiteNavDiv", {
        /**
         * Gets the suite nav div
         */
        get: function () {
            return this._suiteNavDiv;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPMasterChrome.prototype, "isDisposed", {
        /**
         * Returns true if the object has already been disposed, otherwise false.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    SPMasterChrome.prototype._createPageChrome = function () {
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_0__["_PerformanceLogger"].devMark('SPPageChrome.createPageChromeMaster');
        // Page body
        document.body.className = 'ms-font-m';
        // Page Chrome div
        this._chromeDiv = document.createElement('div');
        var chromeDivClasses = 'SPPageChrome';
        if (_common_Flights__WEBPACK_IMPORTED_MODULE_1__["Flights"].isFluentEnabled) {
            chromeDivClasses += ' isFluent';
        }
        else {
            chromeDivClasses += ' isNotFluent';
        }
        if (_common_Flights__WEBPACK_IMPORTED_MODULE_1__["Flights"].preloadSuiteNav) {
            chromeDivClasses += ' withExternalSuiteNav';
        }
        this._chromeDiv.setAttribute('class', chromeDivClasses);
        // SuiteNav div
        if (_common_Flights__WEBPACK_IMPORTED_MODULE_1__["Flights"].preloadSuiteNav) {
            this._suiteNavDiv = document.getElementById('SuiteNavPlaceholder');
        }
        else {
            this._suiteNavDiv = document.createElement('div');
            this._suiteNavDiv.setAttribute('id', 'SuiteNavPlaceHolder');
            this._chromeDiv.appendChild(this._suiteNavDiv);
        }
        if (!window.onerror) {
            window.onerror = _error_SPGlobalErrorHandler__WEBPACK_IMPORTED_MODULE_2__["default"].basicTracingHandler;
        }
    };
    return SPMasterChrome;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPMasterChrome);


/***/ }),

/***/ "vtqB":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-datasources/39.3.0/node_modules/@ms/odsp-datasources/lib-esm/interfaces/WebTemplateType.js ***!
  \*****************************************************************************************************************************************************************************************/
/*! exports provided: WebTemplateType, isTeamSiteLike, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebTemplateType", function() { return WebTemplateType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTeamSiteLike", function() { return isTeamSiteLike; });
// OneDrive:IgnoreCodeCoverage
/**
 * SharePoint SPWeb (subsite) template values, from WebTemplate in sts\stsom\Core\spwebtemplate.cs
 */
var WebTemplateType;
(function (WebTemplateType) {
    WebTemplateType[WebTemplateType["invalid"] = -1] = "invalid";
    /** Team collaboration site */
    WebTemplateType[WebTemplateType["teamSite"] = 1] = "teamSite";
    /** Meeting workspace site */
    WebTemplateType[WebTemplateType["meetings"] = 2] = "meetings";
    WebTemplateType[WebTemplateType["centralAdmin"] = 3] = "centralAdmin";
    WebTemplateType[WebTemplateType["wiki"] = 4] = "wiki";
    WebTemplateType[WebTemplateType["documentCenter"] = 7] = "documentCenter";
    WebTemplateType[WebTemplateType["blog"] = 9] = "blog";
    WebTemplateType[WebTemplateType["tenantAdmin"] = 16] = "tenantAdmin";
    WebTemplateType[WebTemplateType["app"] = 17] = "app";
    WebTemplateType[WebTemplateType["appCatalog"] = 18] = "appCatalog";
    /** Mysite personal web */
    WebTemplateType[WebTemplateType["mySite"] = 21] = "mySite";
    WebTemplateType[WebTemplateType["subgroup"] = 39] = "subgroup";
    WebTemplateType[WebTemplateType["publishingPortal"] = 52] = "publishingPortal";
    WebTemplateType[WebTemplateType["mySiteHost"] = 54] = "mySiteHost";
    WebTemplateType[WebTemplateType["enterpriseWiki"] = 56] = "enterpriseWiki";
    WebTemplateType[WebTemplateType["group"] = 64] = "group";
    /** POINTPUBLISHINGPERSONAL#1 aka Blog site */
    WebTemplateType[WebTemplateType["pointPublishingPersonal"] = 66] = "pointPublishingPersonal";
    /** SITEPAGEPUBLISHING#0 aka Communications site */
    WebTemplateType[WebTemplateType["sitePagePublishing"] = 68] = "sitePagePublishing";
    WebTemplateType[WebTemplateType["teamChannel"] = 69] = "teamChannel";
    WebTemplateType[WebTemplateType["projectWebAppSite"] = 6221] = "projectWebAppSite";
    WebTemplateType[WebTemplateType["contentCenter"] = 6001] = "contentCenter";
})(WebTemplateType || (WebTemplateType = {}));
/**
 * Returns true if the SPWeb Site is not ODB or Group site.
 */
function isTeamSiteLike(template) {
    'use strict';
    var templateEnum = Number(template);
    return templateEnum !== WebTemplateType.mySite && templateEnum !== WebTemplateType.group;
}
/* harmony default export */ __webpack_exports__["default"] = (WebTemplateType);
//# sourceMappingURL=WebTemplateType.js.map

/***/ }),

/***/ "w/WL":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/RgbaColor.js ***!
  \*************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
 * A color represented by red, green, blue, and alpha (opacity) components.
 */
var RgbaColor = /** @class */ (function () {
    /** Constructs a default RgbaColor. Use RgbaColor.fromRgba to specify components. */
    function RgbaColor() {
        this.R = 0;
        this.G = 0;
        this.B = 0;
        this.A = RgbaColor.maxComponent; // Default to fully opaque.
    }
    /**
     * Creates a copy of the given color.
     * @param {RgbaColor} c The color to clone.
     */
    RgbaColor.clone = function (c) {
        return RgbaColor.fromRgba(c.R, c.G, c.B, c.A);
    };
    /**
     * Returns true if the colors have identical component values of R, G, B, and A.
     * @param {RgbaColor} c1 The first color to compare.
     * @param {RgbaColor} c2 The second color to compare.
     */
    RgbaColor.equals = function (c1, c2) {
        var c1IsNull = !c1;
        var c2IsNull = !c2;
        if (c1IsNull || c2IsNull) {
            return c1IsNull && c2IsNull;
        }
        else {
            return c1.R === c2.R && c1.G === c2.G && c1.B === c2.B && c1.A === c2.A;
        }
    };
    /**
     * Creates an RgbaColor from red, green, blue, and alpha component values.
     * @param {number} r The red component value (between 0 and 255).
     * @param {number} g The green component value (between 0 and 255).
     * @param {number} b The blue component value (between 0 and 255).
     * @param {number} a The alpha component value (between 0 and 255).
     */
    RgbaColor.fromRgba = function (r, g, b, a) {
        var colorObj = new RgbaColor;
        colorObj.R = Math.round(r);
        colorObj.G = Math.round(g);
        colorObj.B = Math.round(b);
        colorObj.A = a != null ? Math.round(a) : RgbaColor.maxComponent;
        return colorObj;
    };
    /**
     * Converts an rgba string of type "rgba(number(0-255), number(0-255), number(0-255), number?(0-1))"
     * to an RgbaColor
     * @param rbga the string to be converted
     */
    RgbaColor.fromRgbaString = function (rbga) {
        var rgbaColor = new RgbaColor();
        if (/^rgb.+/.test(rbga)) {
            // Match all of the numbers that are contained within the string.
            var colorNumbers = rbga.match(/[\d.]+/g);
            rgbaColor = RgbaColor.fromRgba(Number(colorNumbers[0]), Number(colorNumbers[1]), Number(colorNumbers[2]), colorNumbers.length === 4 ? Number(colorNumbers[3]) * RgbaColor.maxComponent : null);
        }
        return rgbaColor;
    };
    /**
     * Parses an HTML color string in the formats #AARRGGBB, #RRGGBB, or #RGB.
     * @param {string} htmlColor The HTML color string to parse.
     */
    RgbaColor.fromHtmlColor = function (htmlColor) {
        function TwoHexCharsToNumber(str, index1, index2) {
            return parseInt(str.charAt(index1) + str.charAt(index2), 16);
        }
        var resultColor = new RgbaColor;
        if (typeof htmlColor === "string" && htmlColor.charAt(0) === "#") {
            switch (htmlColor.length) {
                case 9: // #AARRGGBB
                    resultColor.A = TwoHexCharsToNumber(htmlColor, 1, 2);
                    resultColor.R = TwoHexCharsToNumber(htmlColor, 3, 4);
                    resultColor.G = TwoHexCharsToNumber(htmlColor, 5, 6);
                    resultColor.B = TwoHexCharsToNumber(htmlColor, 7, 8);
                    break;
                case 7: // #RRGGBB
                    resultColor.R = TwoHexCharsToNumber(htmlColor, 1, 2);
                    resultColor.G = TwoHexCharsToNumber(htmlColor, 3, 4);
                    resultColor.B = TwoHexCharsToNumber(htmlColor, 5, 6);
                    break;
                case 4: // #RGB
                    resultColor.R = TwoHexCharsToNumber(htmlColor, 1, 1);
                    resultColor.G = TwoHexCharsToNumber(htmlColor, 2, 2);
                    resultColor.B = TwoHexCharsToNumber(htmlColor, 3, 3);
                    break;
            }
        }
        else if (/^rgb.+/.test(htmlColor)) {
            resultColor = RgbaColor.fromRgbaString(htmlColor);
        }
        return resultColor;
    };
    /**
     * Converts an RgbaColor into an HTML string suitable for use as a CSS color value.
     * @param {RgbaColor} c The color to convert.
     * @param {boolean} bFilterValue If true, this produces a string to in the #AARRGGBB format.
     */
    RgbaColor.toHtmlString = function (c, bFilterValue) {
        function ByteToHexString(b) {
            var byte = Number(b);
            if (!(byte >= 0 && byte <= RgbaColor.maxComponent)) {
                throw new Error("Argument must be a Number in [0, 255]");
            }
            var hex = byte.toString(16);
            if (byte < 16) {
                hex = "0" + hex;
            }
            return hex;
        }
        if (c.A < RgbaColor.maxComponent && !bFilterValue) {
            return "rgba(" +
                c.R.toString(10) + ", " +
                c.G.toString(10) + ", " +
                c.B.toString(10) + ", " +
                (c.A / RgbaColor.maxComponent).toFixed(2) + ")";
        }
        else {
            return "#" +
                (bFilterValue ? ByteToHexString(c.A) : "") +
                ByteToHexString(c.R) +
                ByteToHexString(c.G) +
                ByteToHexString(c.B);
        }
    };
    /**
     * The maximum value of an R, G, B, or A component in an RgbaColor.
     */
    RgbaColor.maxComponent = 255;
    return RgbaColor;
}());
exports.default = RgbaColor;
//# sourceMappingURL=RgbaColor.js.map

/***/ }),

/***/ "w4+A":
/*!*******************************!*\
  !*** ./lib/common/Flights.js ***!
  \*******************************/
/*! exports provided: Flights */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Flights", function() { return Flights; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

var Flights = /** @class */ (function () {
    function Flights() {
    }
    /**
     * Gets a value indicating whether the new chrome sequence is enabled
     */
    Flights.useNewChromeSequence = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1342 /* SppplatCrossAppChrome  */);
    };
    Object.defineProperty(Flights, "useNextGenSPA", {
        get: function () {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1338) /* NextGenPage */ && _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1490 /* SPHomeNextGenPage */);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Flights, "isFluentEnabled", {
        get: function () {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1248 /* EnableFluentTheme */);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Flights, "delayExtensionsLoading", {
        get: function () {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1077 /* SPFxDelayExtensionsLoading */);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Flights, "preloadSuiteNav", {
        get: function () {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1136 /* O365ShellModuleJSClient */);
        },
        enumerable: true,
        configurable: true
    });
    return Flights;
}());



/***/ }),

/***/ "wCO9":
/*!************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/WebTheme.js ***!
  \************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:IgnoreCodeCoverage
Object.defineProperty(exports, "__esModule", { value: true });
var FabricTheming_1 = __webpack_require__(/*! ./FabricTheming */ "g/d6");
var RgbaColor_1 = __webpack_require__(/*! ./RgbaColor */ "w/WL");
var UriEncoding_1 = __webpack_require__(/*! ../encoding/UriEncoding */ "G7sL");
/**
 * Utility methods which can be used to load the theme of a SharePoint site.
 */
var WebTheme = /** @class */ (function () {
    function WebTheme() {
    }
    /**
     * Constructs the URL of a REST endpoint which will return the web theme.
     * @param {IWebContextInfo} webContextInfo Context information about the web.
     * @param {string} cultureName Current UI culture.
     * @param {string} themeOverride URL to a temporary override theme (e.g. preview).
     */
    WebTheme.makeWebThemeRestUrl = function (webServerRelativeUrl, cultureName, themeOverride) {
        "use strict";
        var webUrl = webServerRelativeUrl;
        if (webUrl && webUrl[webUrl.length - 1] === '/') {
            // Trim trailing slash.
            webUrl = webUrl.substring(0, webUrl.length - 1);
        }
        webUrl = UriEncoding_1.default.escapeUrlForCallback(webUrl);
        var webThemeRestEndpoint = UriEncoding_1.default.escapeUrlForCallback(webUrl) +
            '/_api/SP.Web.GetContextWebThemeData?noImages=true&lcid=' +
            UriEncoding_1.default.encodeURIComponent(cultureName);
        if (themeOverride) {
            webThemeRestEndpoint += "&ThemeOverride=" + UriEncoding_1.default.encodeURIComponent(themeOverride);
        }
        return webThemeRestEndpoint;
    };
    /**
     * Constructs the URL of a REST endpoint which will return the web theme.
     * @param {IWebContextInfo} webContextInfo Context information about the web.
     */
    WebTheme.processWebThemeRestResponse = function (responseText) {
        // This could throw if the handler returns an HTML error page or invalis JSON.
        // DataSource will count that as an error and call the error callback.
        "use strict";
        var response = JSON.parse(responseText);
        var rawThemeData;
        if (response && response.d && response.d.GetContextWebThemeData) {
            rawThemeData = JSON.parse(response.d.GetContextWebThemeData);
        }
        var themeData = WebTheme.processRawThemeData(rawThemeData);
        return themeData;
    };
    /**
     * Converts an IThemeDataRaw into an IThemeData.
     * @param {IThemeDataRaw} themeData Raw theme data to process.
     */
    WebTheme.processRawThemeData = function (themeData) {
        "use strict";
        if (themeData) {
            var coerceToColor = WebTheme.coerceToColor;
            var setColorIfMissing = WebTheme.SetColorIfMissing;
            var colors = {};
            var inputColors = themeData.Palette ? themeData.Palette.Colors : {};
            colors = WebTheme.convertColorsToRgba(inputColors);
            var fabricColors = FabricTheming_1.default.generateFabricColors(colors['ContentAccent1'], themeData.IsInverted);
            var pageBG = coerceToColor(colors['PageBackground']) || null;
            var bgOverlay = coerceToColor(colors['BackgroundOverlay']) || null;
            var alpha40 = Math.round(0.4 * RgbaColor_1.default.maxComponent);
            for (var colorKey in fabricColors) {
                setColorIfMissing(colors, colorKey, fabricColors[colorKey]);
            }
            setColorIfMissing(colors, 'white', pageBG);
            // RgbaColor.fromRgba and RgbaColor.clone both return new objects.
            // This is important for avoiding duplicate filtering logic in the caching layer.
            setColorIfMissing(colors, 'primaryBackground', RgbaColor_1.default.clone(pageBG));
            setColorIfMissing(colors, 'primaryText', fabricColors['primaryText'] || coerceToColor('#333'));
            setColorIfMissing(colors, 'whiteTranslucent40', pageBG && RgbaColor_1.default.fromRgba(pageBG.R, pageBG.G, pageBG.B, alpha40));
            setColorIfMissing(colors, 'backgroundOverlay', bgOverlay);
            setColorIfMissing(colors, 'suiteBarBackground', coerceToColor(colors['SuiteBarBackground']) || null);
            setColorIfMissing(colors, 'suiteBarText', coerceToColor(colors['SuiteBarText']) || null);
            setColorIfMissing(colors, 'suiteBarDisabledText', coerceToColor(colors['SuiteBarDisabledText']) || null);
            setColorIfMissing(colors, 'topBarBackground', coerceToColor(colors['TopBarBackground']) || null);
            setColorIfMissing(colors, 'topBarText', coerceToColor(colors['TopBarText']) || null);
            setColorIfMissing(colors, 'topBarHoverText', coerceToColor(colors['TopBarHoverText']) || null);
            setColorIfMissing(colors, 'dialogBorder', coerceToColor(colors['DialogBorder']) || null);
            return {
                backgroundImageUri: themeData.BackgroundImageUri,
                cacheToken: themeData.ThemeCacheToken,
                isDefault: themeData.IsDefault,
                isInverted: themeData.IsInverted,
                palette: colors,
                version: themeData.Version
            };
        }
        return {
            backgroundImageUri: "",
            cacheToken: "",
            isDefault: true,
            isInverted: false,
            palette: {},
            version: ""
        };
    };
    WebTheme.convertColorsToRgba = function (colors) {
        var convertedColors = {};
        for (var colorKey in colors) {
            if (colors.hasOwnProperty(colorKey)) {
                var colorValue = WebTheme.coerceToColor(colors[colorKey]);
                // TODO: console.warn if colorValue is undefined?
                if (colorValue) {
                    convertedColors[colorKey] = colorValue;
                }
            }
        }
        return convertedColors;
    };
    /**
     * Coerces an HTML color string or a color object in raw web theme data into an RgbaColor.
     * @param {any} toColor Object to be converted into an RgbaColor.
     */
    WebTheme.coerceToColor = function (toColor) {
        "use strict";
        var resultColor;
        // Use duck typing to extract a color
        if (!toColor) {
            resultColor = null;
        }
        else if (typeof toColor === "string" || toColor instanceof String) {
            resultColor = RgbaColor_1.default.fromHtmlColor(String(toColor));
        }
        else if ("DefaultColor" in toColor) {
            resultColor = WebTheme.coerceToColor(toColor["DefaultColor"]);
        }
        else if ("R" in toColor && "G" in toColor && "B" in toColor) {
            resultColor = RgbaColor_1.default.fromRgba(toColor.R, toColor.G, toColor.B, toColor.A);
        }
        return resultColor;
    };
    WebTheme.SetColorIfMissing = function (palette, slot, color) {
        if (!(palette[slot])) {
            palette[slot] = color;
        }
    };
    return WebTheme;
}());
exports.default = WebTheme;
//# sourceMappingURL=WebTheme.js.map

/***/ }),

/***/ "wxtz":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_wxtz__;

/***/ }),

/***/ "x5SF":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/mdl2-theme/0.1.5_react-dom@16.8.5/node_modules/@uifabric/mdl2-theme/lib/mdl2/styles/Breadcrumb.styles.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: BreadcrumbStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbStyles", function() { return BreadcrumbStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! office-ui-fabric-react/lib/Styling */ "yqbg");
/* harmony import */ var _styleConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styleConstants */ "YBzx");



var BreadcrumbStyles = function (props) {
    var _a;
    var theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    var stateSelectors = {
        ':hover': {
            backgroundColor: palette.neutralLighter,
            textDecoration: 'none'
        },
        ':active': {
            backgroundColor: palette.neutralTertiaryAlt,
            textDecoration: 'none'
        },
        '&:active:hover': {
            backgroundColor: palette.neutralQuaternary,
            textDecoration: 'none'
        }
    };
    var itemStyle = {
        lineHeight: 'normal',
        fontSize: fonts.xLarge.fontSize,
        outline: 'none',
        fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].light,
        color: palette.neutralPrimary,
        selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_a = { '.ms-Fabric--isFocusVisible &:focus': {
                    // Necessary due to changes of Link component not using getFocusStyle.
                    outline: 'none'
                } }, _a[_styleConstants__WEBPACK_IMPORTED_MODULE_2__["MediumScreenSelector"]] = { fontSize: fonts.xLarge.fontSize, fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].regular, lineHeight: 'normal' }, _a[_styleConstants__WEBPACK_IMPORTED_MODULE_2__["MinimumScreenSelector"]] = { fontSize: fonts.xLarge.fontSize, fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].regular, lineHeight: 'normal' }, _a), stateSelectors)
    };
    var lastChildItem = {
        fontWeight: office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].light,
        color: palette.neutralPrimary
    };
    return {
        root: {
            marginTop: 23
        },
        itemLink: itemStyle,
        item: itemStyle,
        listItem: {
            selectors: {
                '&:last-child .ms-Breadcrumb-itemLink': lastChildItem,
                '&:last-child .ms-Breadcrumb-item': lastChildItem
            }
        },
        overflowButton: {
            color: palette.neutralSecondary,
            selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, stateSelectors)
        }
    };
};
//# sourceMappingURL=Breadcrumb.styles.js.map

/***/ }),

/***/ "xPj7":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/PairedEventBase.js ***!
  \****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// OneDrive:CoverageThreshold(75)
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = __webpack_require__(/*! tslib */ "nv8F");
var EventBase_1 = __webpack_require__(/*! ./EventBase */ "P/8H");
var Manager_1 = __webpack_require__(/*! ./Manager */ "rdzh");
var ResultTypeEnum_1 = __webpack_require__(/*! ./events/ResultTypeEnum */ "yq8I");
var ErrorHelper = __webpack_require__(/*! ./ErrorHelper */ "Qd2r");
var safeSerialize_1 = __webpack_require__(/*! @ms/utilities-objects/lib/safeSerialize */ "FO0h");
var schemaExceptionErrorCode = 'GetSchemaException';
var promiseCreationFailureErrorCode = 'PromiseCreationFailed';
var timeoutErrorCode = 'Timeout';
function generateQosResult(resultType, resultCode, error) {
    var schema = {
        resultType: resultType
    };
    if (resultCode) {
        schema.resultCode = resultCode;
    }
    if (error) {
        schema.error = error;
    }
    return schema;
}
var PairedEventBase = /** @class */ (function (_super) {
    tslib_1.__extends(PairedEventBase, _super);
    function PairedEventBase(data, parent) {
        return _super.call(this, data, EventBase_1.ClonedEventType.Start, parent) || this;
    }
    PairedEventBase.instrumentPromise = function (startSchema, createPromise, getCompleteSchema, getErrorSchema, // tslint:disable-line:no-any
    timeoutMs, timeoutSchema, parent) {
        var promise;
        var event = new this(startSchema, parent);
        if (timeoutMs) {
            event.setTimeout(timeoutMs, timeoutSchema);
        }
        var onComplete = function (result) {
            var schema;
            if (getCompleteSchema) {
                try {
                    schema = getCompleteSchema(result);
                }
                catch (e) {
                    schema = generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Failure, schemaExceptionErrorCode, e.toString());
                }
            }
            else {
                schema = generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Success);
            }
            event.end(schema);
        };
        var onError = function (errorArgs) {
            var schema;
            if (getErrorSchema) {
                try {
                    schema = getErrorSchema(errorArgs);
                }
                catch (e) {
                    schema = generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Failure, schemaExceptionErrorCode, e.toString());
                }
            }
            else if (errorArgs) {
                var failureResultType = (errorArgs instanceof Error && errorArgs.name === 'Canceled') ?
                    ResultTypeEnum_1.ResultTypeEnum.ExpectedFailure : ResultTypeEnum_1.ResultTypeEnum.Failure;
                schema = generateQosResult(failureResultType, undefined, safeSerialize_1.safeSerialize(errorArgs));
            }
            else {
                schema = generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Failure);
            }
            event.end(schema);
        };
        try {
            promise = createPromise();
        }
        catch (e) {
            event.end(generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Failure, promiseCreationFailureErrorCode, e.toString()));
            throw e;
        }
        promise.then(onComplete, onError);
        return promise;
    };
    PairedEventBase.prototype.setTimeout = function (ms, data) {
        this._clearTimeout();
        if (!data) {
            data = generateQosResult(ResultTypeEnum_1.ResultTypeEnum.Failure, timeoutErrorCode);
        }
        /* tslint:disable-next-line:ban-native-functions */
        this.timeoutId = window.setTimeout(this.end.bind(this, data), ms);
    };
    PairedEventBase.prototype.verbose = function (message) {
        if (this.endTime) {
            // event already ended, no need to log anymore
            return;
        }
        if (this._isQosEvent()) {
            var qosSchema = this.data;
            ErrorHelper.verbose(message, qosSchema.name);
        }
    };
    PairedEventBase.prototype.end = function (data) {
        // Make sure end can only be called once
        if (!this.endTime) {
            if (data) {
                this._setData(data);
            }
            // Set the end time
            this.endTime = Manager_1.Manager.getTime();
            // Log the event end
            this._logEvent(EventBase_1.ClonedEventType.End);
            // If this is a QOS event log and contains an error message trigger the upload of logs by calling
            // the ErrorHelper
            if (this._isQosEvent()) {
                var qosSchema = this.data;
                if (qosSchema.error) {
                    ErrorHelper.log(qosSchema.error, qosSchema.name, qosSchema.resultCode, qosSchema.resultType);
                }
            }
            this._clearTimeout();
        }
    };
    PairedEventBase.prototype._clearTimeout = function () {
        if (this.timeoutId) {
            /* tslint:disable-next-line:ban-native-functions */
            window.clearTimeout(this.timeoutId);
            this.timeoutId = undefined;
        }
    };
    PairedEventBase.prototype._isQosEvent = function () {
        return this.eventName.indexOf('Qos,') >= 0;
    };
    return PairedEventBase;
}(EventBase_1.EventBase));
function createPairedEvent(props, metadata, baseClass) {
    var PairedEvent = /** @class */ (function (_super) {
        tslib_1.__extends(PairedEvent, _super);
        function PairedEvent() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        return PairedEvent;
    }(PairedEventBase));
    EventBase_1.addEventProps(PairedEvent.prototype, props, metadata, baseClass);
    return PairedEvent;
}
exports.createPairedEvent = createPairedEvent;
//# sourceMappingURL=PairedEventBase.js.map

/***/ }),

/***/ "y88i":
/*!********************************************!*\
  !*** external "@ms/odsp-utilities-bundle" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_y88i__;

/***/ }),

/***/ "y91V":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/models/store/DataStoreCachingType.js ***!
  \*****************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var DataStoreCachingType;
(function (DataStoreCachingType) {
    DataStoreCachingType[DataStoreCachingType["none"] = 0] = "none";
    DataStoreCachingType[DataStoreCachingType["session"] = 1] = "session";
    DataStoreCachingType[DataStoreCachingType["local"] = 2] = "local";
    DataStoreCachingType[DataStoreCachingType["sharedMemory"] = 3] = "sharedMemory";
})(DataStoreCachingType || (DataStoreCachingType = {}));
exports.default = DataStoreCachingType;
//# sourceMappingURL=DataStoreCachingType.js.map

/***/ }),

/***/ "yEhF":
/*!***************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/logging/events/Engagement.event.js ***!
  \***************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Loading @ms/odsp-utilities/logging/events/Engagement.event.js
var pkg = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
module.exports = {}
module.exports.Engagement = pkg.Engagement;
module.exports.default = pkg.Engagement;
Object.defineProperty(module.exports, "__esModule", { value: true });

/***/ }),

/***/ "yq8I":
/*!**********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/telemetry-manager/0.12.6/node_modules/@ms/telemetry-manager/lib/events/ResultTypeEnum.js ***!
  \**********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ResultTypeEnum;
(function (ResultTypeEnum) {
    ResultTypeEnum[ResultTypeEnum["Success"] = 0] = "Success";
    ResultTypeEnum[ResultTypeEnum["Failure"] = 1] = "Failure";
    ResultTypeEnum[ResultTypeEnum["ExpectedFailure"] = 2] = "ExpectedFailure";
})(ResultTypeEnum = exports.ResultTypeEnum || (exports.ResultTypeEnum = {}));
//# sourceMappingURL=ResultTypeEnum.js.map

/***/ }),

/***/ "yqbg":
/*!***************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/office-ui-fabric-react/7.59.0_react-dom@16.8.5/node_modules/office-ui-fabric-react/lib/Styling.js ***!
  \***************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ "Uyjd");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/styling */ "jQzw");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_uifabric_styling__WEBPACK_IMPORTED_MODULE_1__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));


//# sourceMappingURL=Styling.js.map

/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/decorators":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_decorators__;

/***/ }),

/***/ "@microsoft/load-themed-styles":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__;

/***/ }),

/***/ "@microsoft/sp-component-base":
/*!***********************************************!*\
  !*** external "@microsoft/sp-component-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_component_base__;

/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-extension-base":
/*!***********************************************!*\
  !*** external "@microsoft/sp-extension-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_extension_base__;

/***/ }),

/***/ "@microsoft/sp-http":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__;

/***/ }),

/***/ "@microsoft/sp-loader":
/*!***************************************!*\
  !*** external "@microsoft/sp-loader" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_loader__;

/***/ }),

/***/ "@microsoft/sp-lodash-subset":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__;

/***/ }),

/***/ "@microsoft/sp-page-context":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__;

/***/ }),

/***/ "@ms/odsp-utilities-bundle":
/*!********************************************!*\
  !*** external "@ms/odsp-utilities-bundle" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_odsp_utilities_bundle__;

/***/ }),

/***/ "@ms/sp-load-themed-styles":
/*!********************************************!*\
  !*** external "@ms/sp-load-themed-styles" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_sp_load_themed_styles__;

/***/ }),

/***/ "@ms/sp-suite-nav":
/*!***********************************!*\
  !*** external "@ms/sp-suite-nav" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_sp_suite_nav__;

/***/ }),

/***/ "@ms/sp-telemetry":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__;

/***/ }),

/***/ "@ms/uifabric-styling-bundle":
/*!**********************************************!*\
  !*** external "@ms/uifabric-styling-bundle" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_uifabric_styling_bundle__;

/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "react" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_react__;

/***/ }),

/***/ "react-dom":
/*!****************************!*\
  !*** external "react-dom" ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-application-base_en-us.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("8217e442-8ed3-41fd-957d-b112e841286a_0.8.16", ["@microsoft/sp-lodash-subset","@microsoft/sp-core-library","@microsoft/sp-diagnostics","@ms/odsp-utilities-bundle"], function(__WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_y88i__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-telemetry": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"vendors~sp-client-telemetry-aria":"vendors~sp-client-telemetry-aria","sp-client-telemetry-aria":"sp-client-telemetry-aria","vendors~sp-client-telemetry-aria-webjs":"vendors~sp-client-telemetry-aria-webjs","sp-client-telemetry-aria-webjs":"sp-client-telemetry-aria-webjs"}[chunkId]||chunkId) + "_" + {"vendors~sp-client-telemetry-aria":"0b8d92e4a549fce64bb0","sp-client-telemetry-aria":"d48f1b4a7f35e0a67d7e","vendors~sp-client-telemetry-aria-webjs":"4ff6ace51539f44d57c3","sp-client-telemetry-aria-webjs":"1722c7b16a4f795f2ee8"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonp_8217e442_8ed3_41fd_957d_b112e841286a_0_8_16"] = window["webpackJsonp_8217e442_8ed3_41fd_957d_b112e841286a_0_8_16"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-telemetry(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "4Fgs":
/*!************************************!*\
  !*** ./lib/ABExperimentWrapper.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__);
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();

/**
 * We need to wrap ABExperiment since it does not comply with TSDoc
 * documentation requirements for apis.
 * @internal
 */
var ABExperimentWrapper = /** @class */ (function (_super) {
    __extends(ABExperimentWrapper, _super);
    function ABExperimentWrapper() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ABExperimentWrapper;
}(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ABExperiment"]));
/* harmony default export */ __webpack_exports__["default"] = (ABExperimentWrapper);


/***/ }),

/***/ "5yjk":
/*!*****************************************!*\
  !*** ./lib/TelemetrySettingsManager.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */


/**
 * TelemetrySettingsManager stores the configuration for Telemetry passed
 * down by the calling application during bootstrapping.
 *
 * @internal
 */
var TelemetrySettingsManager = /** @class */ (function () {
    function TelemetrySettingsManager() {
    }
    TelemetrySettingsManager.initialize = function (settings) {
        this.settings = Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__["cloneDeep"])(settings);
        this._initialized = true;
        this._normalizeContextIds();
    };
    TelemetrySettingsManager.updateSettings = function (settings) {
        this.settings = Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__["merge"])(this.settings, settings);
        this._normalizeContextIds();
    };
    Object.defineProperty(TelemetrySettingsManager, "isInitialized", {
        get: function () {
            return this._initialized;
        },
        enumerable: true,
        configurable: true
    });
    TelemetrySettingsManager._normalizeId = function (id) {
        var guid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(id);
        return guid ? guid.toString() : id;
    };
    TelemetrySettingsManager._normalizeContextIds = function () {
        this.settings.siteId = this._normalizeId(this.settings.siteId);
        this.settings.webId = this._normalizeId(this.settings.webId);
        this.settings.correlationId = this._normalizeId(this.settings.correlationId);
        if (this.settings.listId) {
            this.settings.listId = this._normalizeId(this.settings.listId);
            if (this.settings.listItemUniqueId) {
                this.settings.listItemUniqueId = this._normalizeId(this.settings.listItemUniqueId);
            }
        }
    };
    TelemetrySettingsManager._initialized = false;
    return TelemetrySettingsManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (TelemetrySettingsManager);


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "RrtT":
/*!**************************!*\
  !*** ./lib/Telemetry.js ***!
  \**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ABExperimentWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ABExperimentWrapper */ "4Fgs");
/* harmony import */ var _AriaLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AriaLogger */ "n5Pd");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TelemetrySettingsManager */ "5yjk");
/* harmony import */ var _Api_BeaconHandlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Api/BeaconHandlers */ "p6/0");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_6__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */







// Killswitch Guid for stop logging BEACONHANDLER
var BEACONHANDLER_KILLSWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_6__["Guid"].parse('c2150266-825e-4777-a629-3e7cb79c91f4');
/**
 * Telemetry class initializes the telemetry pipeline and connect to backend server.
 * Telemetry contains a set of internal APIs that collects data and reports data via
 * the pipeline. The APIs consist of
 *  -- TraceLogger - for logging diagnostic information
 *  -- EngagementLogger - for tracking user interaction with a feature
 *  -- QOS - quality of service, i.e. collecting statistics for how often an operation succeeds/fails
 *  -- PerformanceLogger - for tracking performance data.
 *
 * @internal
 */
var Telemetry = /** @class */ (function () {
    function Telemetry() {
    }
    Object.defineProperty(Telemetry, "buildNumber", {
        /**
         * The build number of the manifests provided by the initial page load
         */
        get: function () {
            return Telemetry._buildNumber;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Initializes the telemetry pipelines based on telemetry settings.
     * Workload name indicates which workload the telemetry data belongs to.
     */
    Telemetry.initialize = function (workloadName, settings) {
        if (!Telemetry._isInitialized) {
            this._workload = workloadName;
            this._originalSession = settings.correlationId;
            _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].initialize(settings);
            // This is the telemetry settings with normalized Ids after TelemetrySettingsManager initialize.
            var telemetrySettings = _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings;
            if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_6__["_SPKillSwitch"].isActivated(BEACONHANDLER_KILLSWITCH, '07/17/2019', 'StopBeaconLogging')) {
                if (Telemetry._shouldEnable(settings.environment)) {
                    var beaconHandler = new _Api_BeaconHandlers__WEBPACK_IMPORTED_MODULE_5__["default"]();
                    _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["BeaconCache"].addToLoggingManager(this._workload, beaconHandler);
                    _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["Beacon"].addToLoggingManager();
                }
            }
            window['disableBeaconLogToConsole'] = true; // tslint:disable-line:no-string-literal
            Telemetry._initializeExperiments(telemetrySettings);
            Telemetry._buildNumber = settings.buildNumber;
            Telemetry._isInitialized = true;
        }
    };
    /**
     * Initializes the telemetry pipelines that depend on odsp-telemetry
     */
    Telemetry.registerTelemetryBackend = function () {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_EngagementLogger"]._addHandler(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["Engagement"]);
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosLogger"].instance.setLogger(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["Qos"]); // tslint:disable-line:no-any
        Telemetry._initializeAria(this._workload);
    };
    /**
     * Loads odsp-telemetry dependencies and
     * processes all the logs in real time (QoS, Engagement and Performance)
     */
    Telemetry.startRealTimeProcessing = function () {
        Telemetry.registerTelemetryBackend();
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_EngagementLogger"].startRealTimeProcessing();
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"].startRealTimeProcessing();
    };
    Object.defineProperty(Telemetry, "isInitialized", {
        /**
         * Returns true if telemetry has been already initialized.
         */
        get: function () {
            return this._isInitialized;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Used to refresh the telemetry settings when they change from the application
     * (i.e. when an in-place navigation to a different site happens)
     * @param settings - the subset of the telemetry settings to be updated
     */
    Telemetry.updateSettings = function (settings, workloadName) {
        if (!Telemetry.isInitialized) {
            return;
        }
        var prevSiteId = _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings.siteId;
        var prevWebId = _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings.webId;
        _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].updateSettings(settings);
        if (!this._originalSession) {
            this._originalSession = settings.correlationId;
        }
        var isDifferentWorkLoad = workloadName && this._workload !== workloadName;
        if (isDifferentWorkLoad) {
            this._workload = workloadName;
            Telemetry._updateBeaconSettings();
        }
        if (isDifferentWorkLoad ||
            _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings.siteId !== prevSiteId ||
            _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings.webId !== prevWebId) {
            // Re-initialize the Aria logger and experiments if doing cross-site in-page navigation
            Telemetry._initializeAria(this._workload, true /** update aria logger settings */);
            Telemetry._initializeExperiments(_TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings);
        }
        if (settings.buildNumber) {
            Telemetry._buildNumber = settings.buildNumber;
        }
    };
    Telemetry._initializeAria = function (workloadName, update) {
        if (update === void 0) { update = false; }
        var settings = _TelemetrySettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings;
        if (settings && Telemetry._shouldEnable(settings.environment)) {
            var token = Telemetry._getAriaToken(workloadName, settings.environment);
            if (token) {
                var authenticated = !!settings.loginName;
                var ariaContext = {
                    isAuthenticated: authenticated,
                    accountType: authenticated ? _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["AccountType"].Business : _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["AccountType"].BusinessAnonymous,
                    market: settings.currentUICultureName,
                    session: settings.correlationId,
                    version: settings.buildNumber,
                    manifest: settings.clientSideApplicationId,
                    userId: settings.systemUserKey,
                    siteSubscriptionId: settings.siteSubscriptionId,
                    siteId: settings.siteId,
                    webId: settings.webId,
                    webTemplateId: settings.webTemplateId,
                    farmLabel: settings.farmLabel,
                    environment: settings.environment,
                    workload: workloadName,
                    completenessCallbackEndpoint: settings.completenessCallbackEndpoint,
                    originalSession: this._originalSession
                };
                if (update) {
                    _AriaLogger__WEBPACK_IMPORTED_MODULE_2__["default"].update(token, ariaContext);
                }
                else {
                    _AriaLogger__WEBPACK_IMPORTED_MODULE_2__["default"].initialize(token, ariaContext);
                }
            }
        }
    };
    Telemetry._shouldEnable = function (env) {
        return !!env && location.hostname !== 'localhost' && true;
    };
    Telemetry._getAriaToken = function (workloadName, env) {
        var workloadTokens = this._workloadsAriaTokens.default;
        if (workloadName.toLowerCase() === 'sphomenext') {
            workloadTokens = this._workloadsAriaTokens.sphome;
        }
        var token;
        switch (env.toLowerCase()) {
            case 'edog':
            case 'prodbubble':
                token = workloadTokens.ppeToken;
                break;
            default:
                // Prod/DProd/etc all go to Prod Aria tenant.
                // Env value can tell the data apart.
                token = workloadTokens.prodToken;
                break;
        }
        return token;
    };
    Telemetry._initializeExperiments = function (settings) {
        _ABExperimentWrapper__WEBPACK_IMPORTED_MODULE_1__["default"].Init({
            userLoginName: settings.loginName,
            farmLabel: settings.farmLabel,
            siteSubscriptionId: settings.siteSubscriptionId,
            siteId: settings.siteId,
            webId: settings.webId
        });
    };
    Telemetry._updateBeaconSettings = function () {
        _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["BeaconCache"].eventNamePrefix = this._workload;
        _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["Beacon"].updateSettings(this._workload);
    };
    Telemetry._isInitialized = false;
    Telemetry._workloadsAriaTokens = {
        default: {
            ppeToken: '930040d5f2d14c649c8f4a22a062a2af-a8806003-7416-4799-9a3a-31de703592e5-6968',
            prodToken: '28f004ff2be44e8997a6f113043d583d-3f663b9a-4911-45b4-be6d-e450ca91e808-7336'
        },
        sphome: {
            ppeToken: '956b7a4e25714a6e9cd155df35b54244-719463e8-67d7-419b-b4ba-8dc8355ac519-6720',
            prodToken: '230b2349e5114b9bbfb4e41e8bb0bd31-a49e91ac-3be8-4d87-862e-63473299dfdf-7397'
        }
    };
    return Telemetry;
}());
/* harmony default export */ __webpack_exports__["default"] = (Telemetry);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "kJO1":
/*!******************************************************!*\
  !*** ./lib/Api/Performance/BasePerformanceLogger.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__);



var PERFORMANCE_LOGGER;
var PRIVATECDN_AUTHORITY = 'https://privatecdn.sharepointonline.com/';
var PRIVATECDN_STAGING_AUTHORITY = 'https://privatecdn-staging.sharepointonline.com/';
var PUBLICCDN_AUTHORITY = 'https://publiccdn.sharepointonline.com/';
var PUBLICCDN_STAGING_AUTHORITY = 'publiccdn-staging.sharepointonline.com';
// VROOM thumbnail URL regex, return thumbnail from alt stream cache if available before redirecting to MeTA
var VROOM_META_CACHE_REGEX = /(\/thumbnails\/\d\/(.*?)\/content\/?\?(.*?)preferNoRedirect=(.*?)$)/i;
// Media Thumbnail URL regex. Core service responsible for generating the thumbnail.
var META_REGEX = /(.svc.ms\/transform\/thumbnail\/?(|(\?(.*?)))$)/i;
// getPreview.ashx end point to DocViz service. This service is under deprecation process.
var DOCVIZ_REGEX = /(\/_layouts\/15\/getpreview.ashx\/?(|(\?(.*?)))$)/i;
var CONNECTIONTYPE_KEY = 'spConnectionType';
var PRIVATECDNENABLED_KEY = 'PrivateCDNEnabled';
var PUBLICCDNENABLED_KEY = 'PublicCDNEnabled';
// Dimention name capturing CDN status for current tenant.
var CDNSTATUS = 'CDNStatus';
// CND is not enabled for current tenant
var CDNDISABLED = 'Disabled';
// Both Public and private CDN are enabled for current tenant.
var PRIVATEPUBLIC = 'PrivatePublic';
// Only Private CDN is enabled for current tenant.
var PRIVATE = 'Private';
// Only Public CDN is enabled for current tenant.
var PUBLIC = 'Public';
var CDNSTATUS_KILLSWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('7da3f7ec-90b4-45b0-b4bc-40376bd3c304');
var IGNORE_NAV_START_OFFSET = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('28e3189f-2ba9-4534-9c22-381d532f5b79');
/**
 * Usage:
 * 1. Begin an application session with a aggregatable name (e.g. level1.level2.level3) at the very beginning.
 *  e.g.
 *    BasePerformanceLogger.initializeApplication('ContosoApp.Page1')
 *  Only one application per page can be created.
 * 2. To monitor a component as part of EUPL:
 * 2.1 Add the following at the component render start time.
 *    BasePerformanceLogger.addComponent('contosoWebPart1');
 *    BasePerformanceLogger.startMarkForComponent('contosoWebPart1');
 * 2.2 Add the following at the component render end time.
 *    BasePerformanceLogger.endMarkForComponent('contosoWebPart1');
 * 3. To monitor a request:
 * 3.1 Add the following at request start time:
 *    BasePerformanceLogger.startMarkForApi('call1_uniqueId', 'someUrl1');
 * 3.2 Add the following at request end time:
 *    BasePerformanceLogger.endMarkForApi('call1_uniqueId', 'call1', 'someUrl1', response);
 *
 * Note1: due to server side limitation, only the first 4 (soon will be 10) components'
 * data is send to server. The rest can be dumped to console if
 * window.sessionStorage["enableRUMOneDebugging"] == true.
 * Note2: do not include component time that do not affect EUPL (like async time spent.)
 *
 * @preapproved @internal
 */
var BasePerformanceLogger = /** @class */ (function () {
    function BasePerformanceLogger() {
    }
    /**
     * Initialize the application with a name. All perf data is reset for non-fullPageLoad.
     * @param applicationName - name of the application
     * @param pageTransitionType - indicates page transition type
     * @param serverVersion - SharePoint server version
     * @param approvedControls - Approved controls whose EUPL will be measured separately
     */
    BasePerformanceLogger.initializeApplication = function (applicationName, pageTransitionType, serverVersion, approvedControls) {
        if (pageTransitionType === void 0) { pageTransitionType = 4 /* fullPageLoad */; }
        // for full page load, new logger instance is created, we don't need to reset it
        // However for in page navigation scenario, we need to ensure that current page logger data is reset
        var fullPageLoad = pageTransitionType === 4 /* fullPageLoad */;
        // For cross app navigation we need to preserve the cross app navigation start time and app start time.
        var appStartTime = this.getCrossAppNavigationStartTime();
        var crossAppNavigationStartTime = this.getApplicationStartTime();
        if (fullPageLoad === false) {
            if (this.isRunning()) {
                // We are nevigating away without completing perf data collection for the current page
                var serverUrl = this._logger.getPerformanceDataPropertyValue('ServerUrl');
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logVerbose(this._logSource, "Performance data could not be collected for current page " + serverUrl + " before resetting");
            }
            this._logger.resetLogger();
            this._logger._keyMetrics = /* tslint:disable-line:no-any */ BasePerformanceLogger._defaultKeyMetrics.slice();
            this._rumOneData = {};
            this._tempData = {};
            delete this._approvedControls;
        }
        if (pageTransitionType === 10 /* crossAppNavigation */) {
            this.markCrossAppNavigationStart(crossAppNavigationStartTime);
            this.markApplicationStart(appStartTime);
        }
        this._addEnabledFlights();
        this._pageTransitionType = pageTransitionType;
        this._logger._rumoneData.PageTransitionType = this._pageTransitionType; /* tslint:disable-line:no-any */
        this._notifyListeners();
        this._reset(applicationName);
        this._approvedControls = approvedControls;
        if (serverVersion) {
            this._logger.writeServerVersion(serverVersion);
        }
        this._notifyListeners();
        if (!!sessionStorage.getItem('spfx-debug')) {
            this._logger.excludePageForPerfData();
        }
    };
    Object.defineProperty(BasePerformanceLogger, "fullPageLoad", {
        /**
         * Indicate whether the performance data is for a full page load or in place page navigation.
         */
        get: function () {
            return this._pageTransitionType === 4 /* fullPageLoad */;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BasePerformanceLogger, "KeyMetrics", {
        get: function () {
            return this._logger.KeyMetrics;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Adds a key metric for the performance logger to collect
     * @param keyMetric - key metric to collect
     */
    BasePerformanceLogger.addKeyMetric = function (keyMetric) {
        if (this._logger.isRunning()) {
            this._logger.addExpectedKeyMetric(keyMetric);
        }
    };
    /**
     * Add a component to track its performance.
     * @param tag - The identifier that identifies the component in the performance data stream.
     */
    BasePerformanceLogger.addComponent = function (tag) {
        if (!this._shouldRunComponent(tag)) {
            return;
        }
        this._logger.addExpectedControl(tag);
        this._notifyListeners();
    };
    /**
     * Record component start time.
     * @param tag - The identifier that identifies the component in the performance data stream.
     */
    BasePerformanceLogger.startMarkForComponent = function (tag, startTime) {
        if (startTime === void 0) { startTime = this.now(); }
        if (!this._shouldRunComponent(tag)) {
            return;
        }
        this.saveTempData(tag + this._componentStartTimeKey, startTime);
        this.addComponentBreakdown(tag, 'start', startTime);
        this._notifyListeners();
    };
    /**
     * Record component end time.
     * @param tag - The identifier that identifies the component in the performance data stream.
     * @param waitForPaint - Optional argument which lets you mark the end of component after the repaint.
     */
    BasePerformanceLogger.endMarkForComponent = function (tag, waitForPaint) {
        var _this = this;
        if (waitForPaint) {
            return this.waitForPaint(function () { return BasePerformanceLogger.endMarkForComponentWithTimestamp(tag, _this.now()); });
        }
        else {
            return BasePerformanceLogger.endMarkForComponentWithTimestamp(tag, this.now());
        }
    };
    /**
     * Logs Control Performance metrics to console.
     * @param tag - The identifier that identifies the component in the performance data stream.
     * @param label - User friendly console operation description.
     * @param componentId - Id of the component.
     * @param alias - Alias of the component.
     */
    BasePerformanceLogger.logPerformanceMetricToConsole = function (tag, label, componentId, alias) {
        var curStartTime = this.getComponentStartTime(tag);
        var curEndTime = this.getComponentEndTime(tag);
        var duration = curEndTime - curStartTime;
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logVerbose(this._logSource, _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format('{0} for component {1} ({2}) took {3} ms', label, componentId, alias, duration));
    };
    /**
     * Record component end time.
     * @param tag - The identifier that identifies the component in the performance data stream.
     * @param endTime - the timestamp recorded at some point in time. Allows adding end marks after the
     * component is done loading.
     */
    BasePerformanceLogger.endMarkForComponentWithTimestamp = function (tag, endTime, overwrite) {
        if (!this._shouldRunComponent(tag)) {
            return;
        }
        if (!this.readTempData(tag + this._componentEndTimeKey) || overwrite) {
            var controlStartTime = this.getComponentStartTime(tag);
            this.reportControlData(tag, controlStartTime, endTime);
            this.saveTempData(tag + this._componentEndTimeKey, endTime);
            this._markComponentCore(tag, 'end', endTime);
            this._notifyListeners();
        }
    };
    /**
     * Record a time in the performance data stream for the component.
     * @param tag - The identifier that identifies the component in the performance data stream.
     * @param name - The name of the mark
     */
    BasePerformanceLogger.markComponent = function (tag, name, timeStamp) {
        if (timeStamp === void 0) { timeStamp = this.now(); }
        if (!this._shouldRunComponent(tag)) {
            return;
        }
        if (this._markComponentCore(tag, name, timeStamp)) {
            this._notifyListeners();
        }
    };
    BasePerformanceLogger.markComponentModuleLoaded = function (tag, timeStamp) {
        if (timeStamp === void 0) { timeStamp = this.now(); }
        if (!this._shouldRunComponent(tag)) {
            return;
        }
        var nowTime = this._markComponentCore(tag, 'modulesLoaded', timeStamp);
        if (nowTime === null || nowTime === undefined) {
            return;
        }
        if (!this._lastModuleLoadedDuration || nowTime > this._lastModuleLoadedDuration) {
            this._lastModuleLoadedDuration = nowTime;
            this.setPerformanceProperty('lastModuleLoaded', nowTime);
        }
        this._notifyListeners();
    };
    /**
     * Returns the millisecond from navigationStart to last component's module loaded time.
     */
    BasePerformanceLogger.getLastModuleLoadedDuration = function () {
        return this._lastModuleLoadedDuration;
    };
    BasePerformanceLogger.skipComponent = function (name) {
        this._componentsToSkip.add(name);
    };
    BasePerformanceLogger.clearComponentToSkip = function (name) {
        this._componentsToSkip.delete(name);
    };
    BasePerformanceLogger.clearComponentsToSkip = function () {
        this._componentsToSkip.clear();
    };
    BasePerformanceLogger.shouldSkipComponent = function (tag) {
        var shouldSkipTag = false;
        this._componentsToSkip.forEach(function (name) {
            shouldSkipTag = shouldSkipTag || (tag.lastIndexOf(name, 0) === 0);
        });
        return shouldSkipTag;
    };
    // @todo #191154 Integrate it into HttpClient.
    /**
     * Record a request start time.
     * @param tag - The identifier that uniquely identifies the request in the
     * performance data stream, used to calculate the duration. Not persisted in RumOne.
     * @param requestUrl - The url of the request.
     *
     */
    BasePerformanceLogger.startMarkForApi = function (tag, startTime) {
        if (startTime === void 0) { startTime = this.now(); }
        if (!this.isRunning()) {
            return;
        }
        this.saveTempData(tag + this._apiStartTimeKey, startTime);
        this._notifyListeners();
    };
    // @todo #191154 Integrate it into HttpClient.
    /**
     * Record a request end time.
     * @param tag - The identifier that uniquely identifies the request in the
     * performance data stream, used to calculate the duration. Not persisted in RumOne.
     * @param name - The name to aggregate the data. Persisted in RumOne stream.
     * @param requestUrl - The url of the request.
     * @param response - The response from the request.
     *
     */
    BasePerformanceLogger.endMarkForApi = function (tag, name, requestUrl, response, endTime) {
        if (endTime === void 0) { endTime = this.now(); }
        if (!this.isRunning()) {
            return;
        }
        var startTime = this.getApiStartTime(tag);
        if (startTime === undefined) {
            return;
        }
        var apiData = {
            url: requestUrl,
            duration: endTime - startTime,
            correlationId: response.headers.get('SPRequestGuid'),
            status: response.status,
            startTime: startTime.toString(),
            endTime: endTime.toString(),
            name: name
        };
        // log a API call perf data object for each API call before EUPL complete
        this._logger.writeAPICallPerformanceData(apiData);
        // Record the last API call end time as app data fetch end
        this.saveTempData(tag + this._apiEndTimeKey, endTime);
        BasePerformanceLogger._updateDataFetch(startTime, endTime);
        this._notifyListeners();
    };
    /**
     * This is only used in internal Test suite.
     * @internal
     */
    BasePerformanceLogger._getMaxDataFetchTime = function () {
        return this._logger.getPerformanceDataPropertyValue('DataFetch');
    };
    /**
     * Mark the current time associated with the provided tag.
     * @param tag - The identifier of the time
     * @param ignoreMarkKey - Indicates if the tag name should not append 'Mark' string
     */
    BasePerformanceLogger.mark = function (tag, ignoreMarkKey) {
        if (ignoreMarkKey === void 0) { ignoreMarkKey = false; }
        this._mark(tag, ignoreMarkKey);
    };
    /**
     * Mark sp-loader start time
     */
    BasePerformanceLogger.markSpLoaderStart = function (startTime) {
        if (startTime === void 0) { startTime = this.now(); }
        this.setPerformanceProperty(this._spLoaderStartKey, startTime);
    };
    /**
     * Mark the navigate to app start time
     * @param startTime - the time that marks the navigate to app start
     */
    BasePerformanceLogger.markCrossAppNavigationStart = function (startTime) {
        if (startTime === void 0) { startTime = this.now(true); }
        this.setPerformanceProperty(this._crossAppNavigationStartKey, startTime);
    };
    /**
     * Mark application start time
     */
    BasePerformanceLogger.markApplicationStart = function (startTime) {
        if (startTime === void 0) { startTime = this.now(true); }
        this._mark(this._applicationStartKey);
        this._setPerformancePropertyWithEUPLBreakdown(this._applicationStartKey, startTime);
    };
    /**
     * Get the navigate to app start time
     */
    BasePerformanceLogger.getCrossAppNavigationStartTime = function () {
        return this._logger.getPerformanceDataPropertyValue(this._crossAppNavigationStartKey);
    };
    /**
     * Get the application start time
     */
    BasePerformanceLogger.getApplicationStartTime = function () {
        return this._logger.getPerformanceDataPropertyValue(this._applicationStartKey);
    };
    /**
     * Get the recorded component start time.
     * @param tag - The identifier that identifies the component in the performance data stream.
     */
    BasePerformanceLogger.getComponentStartTime = function (tag) {
        return this.readTempData(tag + this._componentStartTimeKey);
    };
    /**
     * Get the recorded component end time.
     * @param tag - The identifier that identifies the component in the performance data stream.
     */
    BasePerformanceLogger.getComponentEndTime = function (tag) {
        return this.readTempData(tag + this._componentEndTimeKey);
    };
    /**
     * Get the recorded request start time.
     * @param tag - The identifier that identifies the request in the performance data stream.
     */
    BasePerformanceLogger.getApiStartTime = function (tag) {
        return this.readTempData(tag + this._apiStartTimeKey);
    };
    /**
     * Get the recorded request end time.
     * @param tag - The identifier that identifies the request in the performance data stream.
     */
    BasePerformanceLogger.getApiEndTime = function (tag) {
        return this.readTempData(tag + this._apiEndTimeKey);
    };
    // @todo VSO:237921 - use the correct typings
    // We can't directly use them, as that will cause a dependency for 3rd parties
    /**
     * Get the performance data for the debugger console.
     *
     * @internal
     */
    BasePerformanceLogger.getPerformanceData = function () {
        return this._logger.getPerformanceData();
    };
    /**
     * Subscribe to updates to the performance data.
     *
     * @internal
     */
    BasePerformanceLogger.addListener = function (onDataCallback) {
        this._listeners.push(onDataCallback);
    };
    /**
     * Unsubscribe from updates to the performance data.
     *
     * @internal
     */
    BasePerformanceLogger.removeListener = function (onDataCallback) {
        var index = this._listeners.indexOf(onDataCallback);
        if (index > -1) {
            this._listeners.splice(index, 1);
        }
    };
    /**
     * Return current time offset since page navigation started.
     * For in page navigation if correctly adjust offset
     * @param ignoreNavOffset - When set to true, time returned will ingore navigation offset.
     */
    BasePerformanceLogger.now = function (ignoreNavOffset) {
        var navStartOffset = BasePerformanceLogger.readTempData(BasePerformanceLogger._navigationStartOffsetKey) || 0;
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(IGNORE_NAV_START_OFFSET, '2019/11/05', 'Ignore navigation start offset') &&
            !!ignoreNavOffset) {
            navStartOffset = 0;
        }
        if (!!window.performance && window.performance.now && typeof window.performance.now === 'function') {
            return (Math.round(window.performance.now()) - navStartOffset);
        }
        else if (!!window.performance && window.performance.timing && window.performance.timing.navigationStart) {
            return (Date.now() - window.performance.timing.navigationStart - navStartOffset);
        }
        // This should be very limited case to old browser versions or platforms not supporting performance API
        // We should still get some number for such cases
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logVerbose(BasePerformanceLogger._logSource, "High resolution performance API not supported");
        var perfStartTime = BasePerformanceLogger.readTempData('perfStartTime') || 0;
        return (Date.now() - perfStartTime);
    };
    BasePerformanceLogger.setScenarioId = function (scenarioId) {
        if (this.isRunning()) {
            this._scenarioId = scenarioId;
            this._logger.writeScenarioId(this._scenarioId, true);
        }
    };
    BasePerformanceLogger.getScenarioId = function () {
        return this._scenarioId;
    };
    Object.defineProperty(BasePerformanceLogger, "waitOnAddingExpectedControl", {
        set: function (shouldWait) {
            this._logger.waitOnAddingExpectedControl = shouldWait;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Determines if the RUMONELogger is running
     */
    BasePerformanceLogger.isRunning = function () {
        return this._logger.isRunning();
    };
    /**
     * Records data fetch time
     * @param dataFetchTime - The data fetch timen.
     */
    BasePerformanceLogger.writeDataFetchTime = function (dataFetchTime) {
        this._logger.writeDataFetchTime(dataFetchTime);
    };
    /**
     * Records Server Side Latency
     * @param duration - The time duration.
     * @param iisLatency - The IIs Latency time.
     */
    BasePerformanceLogger.writeServerSideLatency = function (duration, iisLatency) {
        this._logger.writeServerSideLatency(duration, iisLatency);
    };
    /**
     * Records the Server Correlation ID
     * @param correlationId - The value of the Correlaition ID.
     */
    BasePerformanceLogger.writeServerCorrelationId = function (correlationId) {
        this._logger.writeServerCorrelationId(correlationId);
    };
    /**
     * Records App Cache
     * @param appCache - The App Cache value to be registered.
     */
    BasePerformanceLogger.writeAppCache = function (appCache) {
        this._logger.writeAppCache(appCache);
    };
    /**
     * Records Pre Render Time
     * @param preRenderTime - The pre render time to be recorded.
     */
    BasePerformanceLogger.writePreRenderTime = function (preRenderTime) {
        this._logger.writePreRenderTime(preRenderTime);
    };
    /**
     * Records Render Time
     * @param renderTime - The render time to be recorded.
     * @param overwrite - Determines if any previous value for Render Time should be overwritten.
     */
    BasePerformanceLogger.writeRenderTime = function (renderTime, overwrite) {
        this._logger.writeRenderTime(renderTime, overwrite);
    };
    /**
   * Records Time To Fist Byte
   * @param timeToFirstByte - Time to first byte (TTFB) to be recorded.
   */
    BasePerformanceLogger.writeTimeToFirstByte = function (timeToFirstByte) {
        var performaceData = BasePerformanceLogger.getPerformanceData(); /* tslint:disable-line:no-any */
        performaceData.TTFB = timeToFirstByte;
    };
    /**
     * Add Server Metrics
     * @param metric - A dictionary of the metrics to be added.
     * @param overwrite - Determines if any previous value for this metrics should be overwritten.
     */
    BasePerformanceLogger.addServerMetrics = function (metric, overwrite) {
        this._logger.addServerMetrics(metric, overwrite);
    };
    /**
     * Add additional performance breakdown to the web part. Often added using startMarkForComponent or alternate API
     * DO NOT use this API for fixed key data unrelated to components, rather use setPerformanceProperty API.
     *
     * @param tag - The tag of the component. This should match with tag used for other component related API
     *              like startMarkForComponent
     * @param key - The marker to capture additional timing stage about component. The final key in EUPLBreakdown
     *              dictionary would be tag.key
     * @param value - The value of the time to record
     * @param overwrite - Determines if any previous value for this name should be overwritten.
     */
    BasePerformanceLogger.addComponentBreakdown = function (tag, key, value, overwrite) {
        this._logger.addEUPLBreakdown(tag + "." + key, value, overwrite);
    };
    /**
     * Read performance breakdown value of the given component.
     * @param tag - The name of the EUPL breakdown. Persisted in RumOne stream.
     * @param key - The name of the EUPL breakdown. Persisted in RumOne stream.
     * @returns value of the breakdown if exist, undefined otherwise
     */
    BasePerformanceLogger.readComponentBreakdown = function (tag, key) {
        return this._logger.readEUPLBreakdown(tag + "." + key);
    };
    /**
     * Allows the browser to repaint, then invokes a callback.
     * Note: Here, we timeout after animation frame to ensure our code executes after paint, not before.
     * @param onDidPaintcallback - callback function invoked after the browser has repainted.
     */
    BasePerformanceLogger.waitForPaint = function (onDidPaintcallback) {
        requestAnimationFrame(function () {
            setTimeout(onDidPaintcallback);
        });
    };
    /**
     * Set Render property for a given name. It invokes setPerformanceProperty() after the browser has repainted.
     * @param tag - The column name to store the data. Persisted in RumOne stream.
     */
    BasePerformanceLogger.setPerformancePropertyAfterRepaint = function (tag) {
        this.waitForPaint(function () { return BasePerformanceLogger.setPerformanceProperty(tag); });
    };
    /**
     * Get performance property for given name, if set using setPerformanceProperty.
     * @param name - The name of the performance property. Persisted in RumOne stream.
     */
    BasePerformanceLogger.getPerformanceProperty = function (name) {
        return this._logger.getPerformanceDataPropertyValue(name);
    };
    /**
     * Set performance property for given name. This will be added as seperate flatten column to the performance data.
     * Do not use random name, such as guid or timestamp, which is not unique across rows.
     * @param name - The column name to store the data. Persisted in RumOne stream.
     * @param value - The value of the performance propetry.
     * @param addToExisting - If true and value is number, will be added to existing value set before using same name.
     */
    BasePerformanceLogger.setPerformanceProperty = function (name, value, addToExisting) {
        if (value === undefined) {
            value = this.now();
        }
        // Add value to existing measurement
        if (addToExisting && typeof value === 'number') {
            var existingValue = this.getPerformanceProperty(name);
            if (existingValue && typeof existingValue === 'number') {
                value += existingValue;
            }
        }
        this._logger.setPerformanceDataPropertyValue(name, value);
    };
    /**
     * Collect W3c Performance Timings
     */
    BasePerformanceLogger.collectW3CPerfTimings = function () {
        this._logger.collectW3CPerfTimings();
    };
    /**
     * Collect W3c Resource Timings
     */
    BasePerformanceLogger.collectW3cResourceTimings = function () {
        this._logger.collectW3cResourceTimings();
    };
    /**
     * Collect control data
    */
    BasePerformanceLogger.readFullEUPLBreakDown = function () {
        return this._logger.readEUPLBreakdown();
    };
    /**
     * Get the time associated with the tag.
     * @param tag - The identifier of the time
     */
    BasePerformanceLogger.getMark = function (tag, ignoreMarkKey) {
        if (ignoreMarkKey === void 0) { ignoreMarkKey = false; }
        return this._getMark(tag, ignoreMarkKey);
    };
    /**
     * Add adhoc performance markers, these markers will not be reported via telemetry,
     * they are only accessible from debugger.
     * And this function needs to be called synchronously.
     * @param tag - The identifier of the time
     */
    BasePerformanceLogger.devMark = function (tag) {
        if (window.performance && window.performance.mark) {
            window.performance.mark(tag);
        }
    };
    /**
     * Cosmos does not support dynamic column. We want to duplicate data in EUPLBreakdown for key markers.
     */
    BasePerformanceLogger._setPerformancePropertyWithEUPLBreakdown = function (name, value) {
        this.setPerformanceProperty(name, value);
        this._logger.addEUPLBreakdown(name, value);
    };
    BasePerformanceLogger.saveTempData = function (key, value) {
        BasePerformanceLogger._tempData[key] = value;
    };
    BasePerformanceLogger.readTempData = function (key) {
        return BasePerformanceLogger._tempData[key];
    };
    BasePerformanceLogger._shouldRunComponent = function (tag) {
        return this.isRunning() && !this.shouldSkipComponent(tag);
    };
    Object.defineProperty(BasePerformanceLogger, "_logger", {
        get: function () {
            this._ensureInitialized();
            return PERFORMANCE_LOGGER;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Initialize the logger.
     * The logger is not initialized in the constructor for lazy initialization.
     */
    BasePerformanceLogger._ensureInitialized = function () {
        if (!PERFORMANCE_LOGGER) {
            // Lazy initialization
            PERFORMANCE_LOGGER = _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["RumOneLogger"].getRUMOneLogger();
            // Save default key metrics. They get overwritten and RumOneLogger.resetLogger() does not reset them properly.
            BasePerformanceLogger._defaultKeyMetrics = PERFORMANCE_LOGGER.KeyMetrics.slice(); /* tslint:disable-line:no-any */
            PERFORMANCE_LOGGER.registerEUPLComputedHandler(this._EUPLComputedHandler.bind(this));
        }
    };
    BasePerformanceLogger.reportControlData = function (tag, startTime, endTime) {
        if (!this.isRunning) {
            return;
        }
        var controlPerformanceData = {
            controlId: tag,
            startTime: startTime,
            endTime: endTime,
            renderTimeCalculator: this._renderTimeCalculator.bind(this),
            renderTimeRequiredDataChecker: this._renderTimeRequiredDataChecker.bind(this),
            renderTime: undefined,
            ignoreForEUPL: true,
            needFlatten: false
        };
        this._logger.writeControlPerformanceData(controlPerformanceData);
        this._notifyListeners();
    };
    BasePerformanceLogger._renderTimeRequiredDataChecker = function (rumone, controlData) {
        return (rumone && controlData && !isNaN(controlData.endTime));
    };
    /**
     * call back function, exected by RUMOne to compute render time for the control
     */
    BasePerformanceLogger._renderTimeCalculator = function (rumone, controlData) {
        if (rumone && controlData && controlData.endTime) {
            var renderTime = controlData.endTime;
            if (!isNaN(renderTime) && renderTime < 0) {
                var error = new Error("Component " + controlData.controlId + " render time " + renderTime + " is negative\n              ( StartTime: " + controlData.startTime + "\n              endTime: " + controlData.endTime + " pageTransitionType: " + this.fullPageLoad.toString() + ")");
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logError(this._logSource, error, 'negativeRenderTime');
                return 0;
            }
            return renderTime;
        }
        else {
            return 0;
        }
    };
    /**
     * Mark the current time associated with the provided tag.
     * @param tag - The identifier of the time
     */
    BasePerformanceLogger._mark = function (tag, ignoreMarkKey) {
        if (ignoreMarkKey === void 0) { ignoreMarkKey = false; }
        var markName = tag + (ignoreMarkKey ? '' : this._markKey);
        this._logger.mark(markName);
        this._notifyListeners();
    };
    /**
     * Get the time associated with the tag.
     * @param tag - The identifier of the time
     */
    BasePerformanceLogger._getMark = function (tag, ignoreMarkKey) {
        if (ignoreMarkKey === void 0) { ignoreMarkKey = false; }
        var markName = tag + (ignoreMarkKey ? '' : this._markKey);
        return this._logger.getMarkerTime(markName);
    };
    BasePerformanceLogger._updateDataFetch = function (startTime, endTime) {
        if (startTime && endTime) {
            var previousDuration = BasePerformanceLogger._getMaxDataFetchTime();
            var newDuration = endTime - startTime;
            if (!previousDuration || newDuration > previousDuration) {
                this._rumOneData.DataFetch = newDuration;
                this._logger.writeDataFetchTime(newDuration, true);
            }
        }
    };
    BasePerformanceLogger._markComponentCore = function (tag, name, markTime) {
        if (markTime === void 0) { markTime = this.now(); }
        var startTime = this.getComponentStartTime(tag);
        if (startTime === undefined) {
            return undefined;
        }
        this._logger.addEUPLBreakdown(tag + "." + name, markTime);
        return markTime;
    };
    BasePerformanceLogger._notifyListeners = function () {
        this._listeners.forEach(function (listner) {
            try {
                listner();
            }
            catch (err) {
                // empty
            }
        });
    };
    BasePerformanceLogger._reset = function (applicationName, elapsedTime) {
        if (elapsedTime === void 0) { elapsedTime = this.now(); }
        this.saveTempData('perfStartTime', Date.now());
        // Add time elapsed since full page navigation started to compute now offset from nav start
        var navOffset = elapsedTime;
        if (this.fullPageLoad) {
            navOffset = 0;
        }
        else if (this._pageTransitionType === 10 /* crossAppNavigation */) {
            navOffset = this.getCrossAppNavigationStartTime();
        }
        this.saveTempData(this._navigationStartOffsetKey, navOffset);
        this._setPerformancePropertyWithEUPLBreakdown(this._navigationStartOffsetKey, navOffset);
        this.clearComponentsToSkip();
        this._lastModuleLoadedDuration = undefined;
        this.setScenarioId(applicationName);
    };
    /**
     * Notified when RUMOneLogger has finished calculating EUPL and ready to upload Performance data.
     */
    BasePerformanceLogger._EUPLComputedHandler = function (eupl) {
        var _this = this;
        this._collectSPFXPerformanceMarkers();
        this.collectW3CPerfTimings();
        this._collectImageNetworkPerformance();
        this._collectConnectionInfo();
        if (this.fullPageLoad) {
            this.collectW3cResourceTimings();
        }
        this._collectFirstPaintInfo();
        this._collectServiceWorkerInfo();
        this._collectCDNInfo();
        if (this._approvedControls && this._approvedControls.size) {
            var approvedEUPL = void 0;
            var hasUnApprovedControl_1 = false;
            var controls = this._logger.readControlPerformanceData();
            if (controls.length) {
                var approvedControls = controls.filter(function (control) {
                    // TODO: prchando - This needs to be generalized, probably by adding a name to the control besides id
                    // ControlId: "WebPart.NewsWebPart.f8956e10-0fdb-4f62-9da6-da344b586820"
                    if (control.controlId.indexOf('WebPart.') !== 0) {
                        return false; // Not a web part control
                    }
                    var nameEndIndex = control.controlId.indexOf('.', 8);
                    if (nameEndIndex === -1) {
                        return false;
                    }
                    var controlName = control.controlId.substring(0, nameEndIndex + 1); // Match up to period
                    var isApproved = _this._approvedControls.has(controlName);
                    hasUnApprovedControl_1 = hasUnApprovedControl_1 || !isApproved;
                    return isApproved;
                });
                if (approvedControls.length) {
                    approvedControls.sort(function (c1, c2) {
                        return c2.endTime - c1.endTime; // Desending sorting b-a
                    });
                    approvedEUPL = approvedControls[0].endTime;
                }
                else if (!hasUnApprovedControl_1) {
                    // Niether approved nor unpproved control found, so considering approved category
                    approvedEUPL = eupl;
                }
            }
            if (approvedEUPL !== undefined) {
                this.setPerformanceProperty('ApprovedControlsEUPL', approvedEUPL);
            }
            else {
                // This page contains at least one unapproved control but no approved control.
                this.setPerformanceProperty('UnapprovedControlsEUPL', eupl);
            }
        }
    };
    /**
    * Collect SPFX Performance markers into performance data as first class column
    */
    BasePerformanceLogger._collectSPFXPerformanceMarkers = function () {
        var perfMarksKey = 'spfxPerfMarks';
        var perfMarks = window[perfMarksKey];
        if (perfMarks) {
            for (var markKey in perfMarks) {
                if (markKey && !isNaN(perfMarks[markKey])) {
                    this.setPerformanceProperty(markKey, perfMarks[markKey]);
                }
            }
            // All done, clear this so next page does not mix with it.
            // Making it empty so that if data comes after post flush, it does not throw.
            window[perfMarksKey] = {};
        }
    };
    /**
     * Measure time taken to load viewport images from getPreview or MeTA service
     */
    BasePerformanceLogger._collectImageNetworkPerformance = function () {
        if (!window.performance) {
            return;
        }
        var imagePerfEntries = window.performance.getEntriesByType('resource')
            .filter(function (perfEntry) {
            return perfEntry.duration > 0;
        });
        for (var index = 0; index < imagePerfEntries.length; index++) {
            var perfEntry = imagePerfEntries[index];
            var serviceName = undefined;
            if (VROOM_META_CACHE_REGEX.test(perfEntry.name)) {
                serviceName = 'VROOMMeTACache';
            }
            else if (META_REGEX.test(perfEntry.name)) {
                serviceName = 'MeTA';
            }
            else if (DOCVIZ_REGEX.test(perfEntry.name)) {
                serviceName = 'DocViz';
            }
            else if (this._isUrlPrivateCDNThumbnail(perfEntry.name)) {
                serviceName = 'PrivateCDN';
            }
            else if (this._isUrlPublicCDNThumbnail(perfEntry.name)) {
                serviceName = 'PublicCDN';
            }
            if (serviceName) {
                var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('ThumbnailLoadDuration');
                qosMonitor.writeSuccess({
                    service: serviceName,
                    duration: perfEntry.duration
                });
            }
        }
    };
    BasePerformanceLogger._isUrlPrivateCDNThumbnail = function (url) {
        return url
            && (url.indexOf(PRIVATECDN_AUTHORITY) === 0 || url.indexOf(PRIVATECDN_STAGING_AUTHORITY) === 0)
            && url.indexOf('_eat_=') > -1
            && url.indexOf('_oat_=') > -1
            && url.indexOf('width=') > -1;
    };
    BasePerformanceLogger._isUrlPublicCDNThumbnail = function (url) {
        return url
            && (url.indexOf(PUBLICCDN_AUTHORITY) === 0 || url.indexOf(PUBLICCDN_STAGING_AUTHORITY) === 0)
            && url.indexOf('width=') > -1;
    };
    /**
     * Collect information about Network connection type e.g. 4g, 3g.
     * For more info: https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API
     */
    BasePerformanceLogger._collectConnectionInfo = function () {
        // tslint:disable: no-any
        var nav = navigator;
        var connection = nav.connection || nav.mozConnection || nav.webkitConnection;
        // tslint:enable: no-any
        if (connection && connection.effectiveType) {
            this._logger.setPerformanceDataPropertyValue(CONNECTIONTYPE_KEY, connection.effectiveType);
        }
        else {
            // Not supported on every browser
            this._logger.setPerformanceDataPropertyValue(CONNECTIONTYPE_KEY, 'N/A');
        }
    };
    /**
    * Capture flights enabled for performance logging.
    * Note: Flights only explicitly opted for perf measurement are captured here
    * Add flight to _flightsOptedABTesting to opt in for logging
    */
    BasePerformanceLogger._addEnabledFlights = function () {
        var allEnabledFlights = [];
        for (var index = 0; this._flightsOptedABTesting && index < this._flightsOptedABTesting.length; index++) {
            var flight = this._flightsOptedABTesting[index];
            if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(flight)) {
                allEnabledFlights.push(flight.toString());
            }
        }
        this._logger.addFlights(allEnabledFlights);
    };
    BasePerformanceLogger._collectFirstPaintInfo = function () {
        var _this = this;
        if (window.performance && window.performance.getEntriesByType) {
            var paintMetrics = window.performance.getEntriesByType('paint');
            paintMetrics.forEach(function (performanceEntry, i, entries) {
                if ('first-paint' === performanceEntry.name) {
                    _this.setPerformanceProperty('firstPaint', performanceEntry.startTime);
                }
                else if ('first-contentful-paint' === performanceEntry.name) {
                    _this.setPerformanceProperty('firstContentfulPaint', performanceEntry.startTime);
                }
            });
        }
    };
    BasePerformanceLogger._collectServiceWorkerInfo = function () {
        if (window.performance && window.performance.getEntriesByType) {
            // Collecting data to get service worker boot time
            var serviceWorkerMetric = performance.getEntriesByType('navigation');
            if (serviceWorkerMetric.length) {
                // Get service worker state
                var serviceWorkerState = sessionStorage.getItem('serviceworkerstate') || 'unknown';
                // Push service worker data only for full page load type 4
                this.setPerformanceProperty('serviceworkerstate', serviceWorkerState);
                this.setPerformanceProperty('sw.workerstart', String(serviceWorkerMetric[0].workerStart));
                this.setPerformanceProperty('sw.fetchstart', String(serviceWorkerMetric[0].fetchStart));
                this.setPerformanceProperty('sw.requeststart', String(serviceWorkerMetric[0].requestStart));
                this.setPerformanceProperty('serviceworkerincubationflight', String(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1531)));
                this.setPerformanceProperty('serviceworkercommonflight', String(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1620)));
                this.setPerformanceProperty('serviceworkerexperimentationflight', String(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1612)));
                this.setPerformanceProperty('serviceworkerexperimentationvalue', String(this._collectServiceWorkerExperimentData()));
            }
        }
    };
    /**
     * Add CDNStatus dimension to the Performance telementry
     */
    BasePerformanceLogger._collectCDNInfo = function () {
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(CDNSTATUS_KILLSWITCH, '2019/10/25', 'WEX Captrue CDN Status to Perf telemetry')) {
            return;
        }
        var privateEnabled = _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["SPAlternativeUrls"].tryGetAlternativeUrl(PRIVATECDNENABLED_KEY) &&
            'true' === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["SPAlternativeUrls"].tryGetAlternativeUrl(PRIVATECDNENABLED_KEY).toLowerCase();
        var publicEnabled = _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["SPAlternativeUrls"].tryGetAlternativeUrl(PUBLICCDNENABLED_KEY) &&
            'true' === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["SPAlternativeUrls"].tryGetAlternativeUrl(PUBLICCDNENABLED_KEY).toLowerCase();
        var cdnStatus = CDNDISABLED;
        if (privateEnabled && publicEnabled) {
            cdnStatus = PRIVATEPUBLIC;
        }
        else if (privateEnabled || publicEnabled) {
            cdnStatus = privateEnabled ? PRIVATE : PUBLIC;
        }
        this.setPerformanceProperty(CDNSTATUS, cdnStatus);
    };
    BasePerformanceLogger._collectServiceWorkerExperimentData = function () {
        var serviceWorkerExperiment = new _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ABExperiment"]({
            name: 'CommonServiceWorkerExperiment',
            startDate: '8/19/2019'
        });
        return String(serviceWorkerExperiment.IsExperimentOn());
    };
    BasePerformanceLogger.extensionsInitializedMetricName = 'ExtensionsInitialized';
    BasePerformanceLogger._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_LogSource"].create('BasePerformanceLogger');
    BasePerformanceLogger._rumOneData = {};
    BasePerformanceLogger._tempData = {}; /* tslint:disable-line:no-any */
    BasePerformanceLogger._componentStartTimeKey = 'ComponentStartTime';
    BasePerformanceLogger._componentEndTimeKey = 'ComponentEndTime';
    BasePerformanceLogger._apiStartTimeKey = 'ApiStartTime';
    BasePerformanceLogger._apiEndTimeKey = 'ApiEndTime';
    BasePerformanceLogger._markKey = 'Mark';
    BasePerformanceLogger._spLoaderStartKey = 'spLoaderStart';
    BasePerformanceLogger._applicationStartKey = 'appStart';
    BasePerformanceLogger._navigationStartOffsetKey = 'navigationStartOffset';
    BasePerformanceLogger._crossAppNavigationStartKey = 'crossAppNavigationStart';
    BasePerformanceLogger._listeners = [];
    BasePerformanceLogger._componentsToSkip = new Set();
    BasePerformanceLogger._pageTransitionType = 0 /* none */;
    /**
     * List of flights which needs to be tracked along with performance data
     * It will allow compare perf data with and without flight enabled.
     */
    BasePerformanceLogger._flightsOptedABTesting = [
        125 /* SppplatRequireJsLoader */,
        242 /* ListViewWebPartWithItemsView */,
        944 /* WexWebPartCacheXGeoClientWriteBack */,
        1069 /* SharePointSitesPrefetchPersonalContext */,
        1073 /* ClientSideRecommendedNews */,
        1265 /* SPHomeServiceContextPrefetch */,
        1309 /* SPClientSuiteNavCommon */,
        1336 /* AbbreviationPagesPrototype */,
        1338 /* NextGenPage */,
        1353 /* WEXIncreaseWebPartPreloadCount */,
        1357 /* SPPLATClientLoaderDeassemblyfication */,
        1599 /* SOXEventsDeferCheckPermission */,
        1612 /* SpClientServiceWorkerExperimentation */,
        1617 /* IDCEnableRenderCompleteAPICallForWebPartThumbnail */,
        1618 /* SPPPlatPaintStarvationSPClient */,
        1658 /* WexLegacyFabricLocalFont */,
        1697 /* WEXImproveEditPerf */,
        1540 /* WEXNewsFilterForOtherSources */,
        1240 /* SPPagesSuiteSearchBox */,
        1455 /* SPHomeSuiteSearchBox */,
        1373 /* WEXDeferredComponentsDispatchTimeout */,
        1077 /* SPFxDelayExtensionsLoading */,
        1136 /* O365ShellModuleJSClient */,
        1204 /* SOXSyncLoadWebpartInViewport */,
        1737 /* WEXCacheThumbnails */,
        1751 /* SPFxJsonParse2 */,
        1760 /* WEXMinimizeViewPortLoadOverhead */,
        1279 /* WexPagePerfLoadingIndicator */
    ];
    return BasePerformanceLogger;
}());
/* harmony default export */ __webpack_exports__["default"] = (BasePerformanceLogger);


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: _EngagementLogger, _QosMonitor, _PerformanceLogger, _Telemetry, _ABExperiment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_EngagementLogger", function() { return _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_EngagementLogger"]; });

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

/* harmony import */ var _Api_Performance_BasePerformanceLogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Api/Performance/BasePerformanceLogger */ "kJO1");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_PerformanceLogger", function() { return _Api_Performance_BasePerformanceLogger__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _Telemetry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Telemetry */ "RrtT");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_Telemetry", function() { return _Telemetry__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _ABExperimentWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ABExperimentWrapper */ "4Fgs");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ABExperiment", function() { return _ABExperimentWrapper__WEBPACK_IMPORTED_MODULE_3__["default"]; });







/***/ }),

/***/ "n5Pd":
/*!***************************!*\
  !*** ./lib/AriaLogger.js ***!
  \***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */


/**
 * @internal
 */
var AriaLogger = /** @class */ (function () {
    function AriaLogger() {
    }
    AriaLogger.initialize = function (tenantToken, context) {
        var useNewAriaSdkSPWeb = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1614 /*SPPPlatUseLatestAriaSdkSPClient */);
        if (useNewAriaSdkSPWeb) {
            Promise.all(/*! import() | sp-client-telemetry-aria-webjs */[__webpack_require__.e("vendors~sp-client-telemetry-aria-webjs"), __webpack_require__.e("sp-client-telemetry-aria-webjs")]).then(__webpack_require__.bind(null, /*! ./ariaWebJsWrapper */ "8Gis")).then(function (_a) {
                var ariaWebJsWrapper = _a.ariaWebJsWrapper;
                AriaLogger.ariaLoggerDisposer = _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["AriaLoggerCore"].Init(tenantToken, context, ariaWebJsWrapper);
            });
        }
        else {
            Promise.all(/*! import() | sp-client-telemetry-aria */[__webpack_require__.e("vendors~sp-client-telemetry-aria"), __webpack_require__.e("sp-client-telemetry-aria")]).then(__webpack_require__.bind(null, /*! ./ariaWrapper */ "GdB4")).then(function (_a) {
                var ariaWrapper = _a.ariaWrapper;
                AriaLogger.ariaLoggerDisposer = _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["AriaLoggerCore"].Init(tenantToken, context, ariaWrapper);
            });
        }
    };
    AriaLogger.update = function (tenantToken, context) {
        if (AriaLogger.ariaLoggerDisposer && typeof AriaLogger.ariaLoggerDisposer === 'function') {
            AriaLogger.ariaLoggerDisposer();
        }
        AriaLogger.initialize(tenantToken, context);
    };
    return AriaLogger;
}());
/* harmony default export */ __webpack_exports__["default"] = (AriaLogger);


/***/ }),

/***/ "p6/0":
/*!***********************************!*\
  !*** ./lib/Api/BeaconHandlers.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/odsp-utilities-bundle */ "y88i");
/* harmony import */ var _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @copyright Microsoft Corporation.All rights reserved.
 * @file BeaconHandlers.ts
 * BeasonHandlers represents the contract for application logger
 */

/**
 * @internal
 */
var BeaconHandlers = /** @class */ (function () {
    function BeaconHandlers() {
    }
    BeaconHandlers._getResultTypeSuffix = function (resultType) {
        'use strict';
        if (resultType === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ResultTypeEnum"].Success) {
            return '.Success';
        }
        else if (resultType === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ResultTypeEnum"].Failure) {
            return '.Failure';
        }
        else if (resultType === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ResultTypeEnum"].ExpectedFailure) {
            return '.ExpectedFailure';
        }
        return '';
    };
    // ignore these events, or they will show up under UnknownEvent
    BeaconHandlers.prototype.ignoredEventsHandler = function (event) {
        return _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["Nav"].isTypeOf(event) || _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["PLTHttpRequest"].isTypeOf(event);
    };
    BeaconHandlers.prototype.qosEventNameHandler = function (event, currentName) {
        var name = currentName;
        if (event.data) {
            if (event.eventType === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ClonedEventType"].Start) {
                name += '.Start';
            }
            else if (event.eventType === _ms_odsp_utilities_bundle__WEBPACK_IMPORTED_MODULE_0__["ClonedEventType"].End) {
                if (event.data.resultCode) {
                    name += '.' + event.data.resultCode;
                }
                name += BeaconHandlers._getResultTypeSuffix(event.data.resultType);
            }
            else {
                name += '.no_EventType';
            }
        }
        return name;
    };
    /* tslint:disable-next-line:no-any */
    BeaconHandlers.prototype.qosEventExtraDataHandler = function (event, qosData) {
        return;
    };
    return BeaconHandlers;
}());
/* harmony default export */ __webpack_exports__["default"] = (BeaconHandlers);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "y88i":
/*!********************************************!*\
  !*** external "@ms/odsp-utilities-bundle" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_y88i__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-telemetry.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("73e1dc6c-8441-42cc-ad47-4bd3659f8a3a_1.10.0", [], function() { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

function apply(e,r,t){switch(t.length){case 0:return e.call(r);case 1:return e.call(r,t[0]);case 2:return e.call(r,t[0],t[1]);case 3:return e.call(r,t[0],t[1],t[2])}return e.apply(r,t)}function arrayAggregator(e,r,t,n){for(var a=-1,s=null==e?0:e.length;++a<s;){var i=e[a];r(n,i,t(i),e)}return n}function arrayEach(e,r){for(var t=-1,n=null==e?0:e.length;++t<n&&r(e[t],t,e)!==!1;);return e}function arrayFilter(e,r){for(var t=-1,n=null==e?0:e.length,a=0,s=[];++t<n;){var i=e[t];r(i,t,e)&&(s[a++]=i)}return s;
}function arrayIncludes(e,r){return!!(null==e?0:e.length)&&baseIndexOf(e,r,0)>-1}function arrayIncludesWith(e,r,t){for(var n=-1,a=null==e?0:e.length;++n<a;)if(t(r,e[n]))return!0;return!1}function arrayMap(e,r){for(var t=-1,n=null==e?0:e.length,a=Array(n);++t<n;)a[t]=r(e[t],t,e);return a}function arrayPush(e,r){for(var t=-1,n=r.length,a=e.length;++t<n;)e[a+t]=r[t];return e}function arrayReduce(e,r,t,n){var a=-1,s=null==e?0:e.length;for(n&&s&&(t=e[++a]);++a<s;)t=r(t,e[a],a,e);return t}function arraySome(e,r){
for(var t=-1,n=null==e?0:e.length;++t<n;)if(r(e[t],t,e))return!0;return!1}function asciiToArray(e){return e.split("")}function asciiWords(e){return e.match(reAsciiWord)||[]}function baseFindKey(e,r,t){var n;return t(e,function(e,t,a){if(r(e,t,a))return n=t,!1}),n}function baseFindIndex(e,r,t,n){for(var a=e.length,s=t+(n?1:-1);n?s--:++s<a;)if(r(e[s],s,e))return s;return-1}function baseIndexOf(e,r,t){return r===r?strictIndexOf(e,r,t):baseFindIndex(e,baseIsNaN,t)}function baseIsNaN(e){return e!==e}function baseProperty(e){
return function(r){return null==r?undefined:r[e]}}function basePropertyOf(e){return function(r){return null==e?undefined:e[r]}}function baseSortBy(e,r){var t=e.length;for(e.sort(r);t--;)e[t]=e[t].c;return e}function baseSum(e,r){for(var t,n=-1,a=e.length;++n<a;){var s=r(e[n]);s!==undefined&&(t=t===undefined?s:t+s)}return t}function baseTimes(e,r){for(var t=-1,n=Array(e);++t<e;)n[t]=r(t);return n}function baseToPairs(e,r){return arrayMap(r,function(r){return[r,e[r]]})}function baseUnary(e){return function(r){
return e(r)}}function baseValues(e,r){return arrayMap(r,function(r){return e[r]})}function cacheHas(e,r){return e.has(r)}function charsStartIndex(e,r){for(var t=-1,n=e.length;++t<n&&baseIndexOf(r,e[t],0)>-1;);return t}function charsEndIndex(e,r){for(var t=e.length;t--&&baseIndexOf(r,e[t],0)>-1;);return t}function getValue(e,r){return null==e?undefined:e[r]}function hasUnicode(e){return reHasUnicode.test(e)}function hasUnicodeWord(e){return reHasUnicodeWord.test(e)}function iteratorToArray(e){for(var r,t=[];!(r=e.next()).done;)t.push(r.value);
return t}function mapToArray(e){var r=-1,t=Array(e.size);return e.forEach(function(e,n){t[++r]=[n,e]}),t}function overArg(e,r){return function(t){return e(r(t))}}function safeGet(e,r){return"__proto__"==r?undefined:e[r]}function setToArray(e){var r=-1,t=Array(e.size);return e.forEach(function(e){t[++r]=e}),t}function setToPairs(e){var r=-1,t=Array(e.size);return e.forEach(function(e){t[++r]=[e,e]}),t}function strictIndexOf(e,r,t){for(var n=t-1,a=e.length;++n<a;)if(e[n]===r)return n;return-1}function stringSize(e){
return hasUnicode(e)?unicodeSize(e):asciiSize(e)}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function unicodeSize(e){for(var r=reUnicode.lastIndex=0;reUnicode.test(e);)++r;return r}function unicodeToArray(e){return e.match(reUnicode)||[]}function unicodeWords(e){return e.match(reUnicodeWord)||[]}function lodash(){}function Hash(e){var r=-1,t=null==e?0:e.length;for(this.clear();++r<t;){var n=e[r];this.set(n[0],n[1])}}function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{},
this.size=0}function hashDelete(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}function hashGet(e){var r=this.__data__;if(nativeCreate){var t=r[e];return t===HASH_UNDEFINED?undefined:t}return hasOwnProperty.call(r,e)?r[e]:undefined}function hashHas(e){var r=this.__data__;return nativeCreate?r[e]!==undefined:hasOwnProperty.call(r,e)}function hashSet(e,r){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=nativeCreate&&r===undefined?HASH_UNDEFINED:r,this}function ListCache(e){
var r=-1,t=null==e?0:e.length;for(this.clear();++r<t;){var n=e[r];this.set(n[0],n[1])}}function listCacheClear(){this.__data__=[],this.size=0}function listCacheDelete(e){var r=this.__data__,t=assocIndexOf(r,e);return!(t<0)&&(t==r.length-1?r.pop():splice.call(r,t,1),--this.size,!0)}function listCacheGet(e){var r=this.__data__,t=assocIndexOf(r,e);return t<0?undefined:r[t][1]}function listCacheHas(e){return assocIndexOf(this.__data__,e)>-1}function listCacheSet(e,r){var t=this.__data__,n=assocIndexOf(t,e);
return n<0?(++this.size,t.push([e,r])):t[n][1]=r,this}function MapCache(e){var r=-1,t=null==e?0:e.length;for(this.clear();++r<t;){var n=e[r];this.set(n[0],n[1])}}function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map||ListCache),string:new Hash}}function mapCacheDelete(e){var r=getMapData(this,e).delete(e);return this.size-=r?1:0,r}function mapCacheGet(e){return getMapData(this,e).get(e)}function mapCacheHas(e){return getMapData(this,e).has(e)}function mapCacheSet(e,r){var t=getMapData(this,e),n=t.size;
return t.set(e,r),this.size+=t.size==n?0:1,this}function SetCache(e){var r=-1,t=null==e?0:e.length;for(this.__data__=new MapCache;++r<t;)this.add(e[r])}function setCacheAdd(e){return this.__data__.set(e,HASH_UNDEFINED),this}function setCacheHas(e){return this.__data__.has(e)}function Stack(e){this.size=(this.__data__=new ListCache(e)).size}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(e){var r=this.__data__,t=r.delete(e);return this.size=r.size,t}function stackGet(e){
return this.__data__.get(e)}function stackHas(e){return this.__data__.has(e)}function stackSet(e,r){var t=this.__data__;if(t instanceof ListCache){var n=t.__data__;if(!Map||n.length<LARGE_ARRAY_SIZE-1)return n.push([e,r]),this.size=++t.size,this;t=this.__data__=new MapCache(n)}return t.set(e,r),this.size=t.size,this}function arrayLikeKeys(e,r){var t=isArray(e),n=!t&&isArguments(e),a=!t&&!n&&isBuffer(e),s=!t&&!n&&!a&&isTypedArray(e),i=t||n||a||s,o=i?baseTimes(e.length,String):[],u=o.length;for(var c in e)!r&&!hasOwnProperty.call(e,c)||i&&("length"==c||a&&("offset"==c||"parent"==c)||s&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||isIndex(c,u))||o.push(c);
return o}function assignMergeValue(e,r,t){(t===undefined||eq(e[r],t))&&(t!==undefined||r in e)||baseAssignValue(e,r,t)}function assignValue(e,r,t){var n=e[r];hasOwnProperty.call(e,r)&&eq(n,t)&&(t!==undefined||r in e)||baseAssignValue(e,r,t)}function assocIndexOf(e,r){for(var t=e.length;t--;)if(eq(e[t][0],r))return t;return-1}function baseAggregator(e,r,t,n){return baseEach(e,function(e,a,s){r(n,e,t(e),s)}),n}function baseAssign(e,r){return e&&copyObject(r,keys(r),e)}function baseAssignIn(e,r){return e&&copyObject(r,keysIn(r),e);
}function baseAssignValue(e,r,t){"__proto__"==r&&defineProperty?defineProperty(e,r,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[r]=t}function baseClone(e,r,t,n,a,s){var i,o=r&CLONE_DEEP_FLAG,u=r&CLONE_FLAT_FLAG,c=r&CLONE_SYMBOLS_FLAG;if(t&&(i=a?t(e,n,a,s):t(e)),i!==undefined)return i;if(!isObject(e))return e;var l=isArray(e);if(l){if(i=initCloneArray(e),!o)return copyArray(e,i)}else{var f=getTag(e),g=f==funcTag||f==genTag;if(isBuffer(e))return cloneBuffer(e,o);if(f==objectTag||f==argsTag||g&&!a){
if(i=u||g?{}:initCloneObject(e),!o)return u?copySymbolsIn(e,baseAssignIn(i,e)):copySymbols(e,baseAssign(i,e))}else{if(!cloneableTags[f])return a?e:{};i=initCloneByTag(e,f,o)}}s||(s=new Stack);var d=s.get(e);if(d)return d;if(s.set(e,i),isSet(e))return e.forEach(function(n){i.add(baseClone(n,r,t,n,e,s))}),i;if(isMap(e))return e.forEach(function(n,a){i.set(a,baseClone(n,r,t,a,e,s))}),i;var y=c?u?getAllKeysIn:getAllKeys:u?keysIn:keys,p=l?undefined:y(e);return arrayEach(p||e,function(n,a){p&&(a=n,n=e[a]),
assignValue(i,a,baseClone(n,r,t,a,e,s))}),i}function baseDifference(e,r,t,n){var a=-1,s=arrayIncludes,i=!0,o=e.length,u=[],c=r.length;if(!o)return u;t&&(r=arrayMap(r,baseUnary(t))),n?(s=arrayIncludesWith,i=!1):r.length>=LARGE_ARRAY_SIZE&&(s=cacheHas,i=!1,r=new SetCache(r));e:for(;++a<o;){var l=e[a],f=null==t?l:t(l);if(l=n||0!==l?l:0,i&&f===f){for(var g=c;g--;)if(r[g]===f)continue e;u.push(l)}else s(r,f,n)||u.push(l)}return u}function baseFlatten(e,r,t,n,a){var s=-1,i=e.length;for(t||(t=isFlattenable),
a||(a=[]);++s<i;){var o=e[s];r>0&&t(o)?r>1?baseFlatten(o,r-1,t,n,a):arrayPush(a,o):n||(a[a.length]=o)}return a}function baseForOwn(e,r){return e&&baseFor(e,r,keys)}function baseGet(e,r){r=castPath(r,e);for(var t=0,n=r.length;null!=e&&t<n;)e=e[toKey(r[t++])];return t&&t==n?e:undefined}function baseGetAllKeys(e,r,t){var n=r(e);return isArray(e)?n:arrayPush(n,t(e))}function baseGetTag(e){return null==e?e===undefined?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e);
}function baseHas(e,r){return null!=e&&hasOwnProperty.call(e,r)}function baseHasIn(e,r){return null!=e&&r in Object(e)}function baseIntersection(e,r,t){for(var n=t?arrayIncludesWith:arrayIncludes,a=e[0].length,s=e.length,i=s,o=Array(s),u=1/0,c=[];i--;){var l=e[i];i&&r&&(l=arrayMap(l,baseUnary(r))),u=nativeMin(l.length,u),o[i]=!t&&(r||a>=120&&l.length>=120)?new SetCache(i&&l):undefined}l=e[0];var f=-1,g=o[0];e:for(;++f<a&&c.length<u;){var d=l[f],y=r?r(d):d;if(d=t||0!==d?d:0,!(g?cacheHas(g,y):n(c,y,t))){
for(i=s;--i;){var p=o[i];if(!(p?cacheHas(p,y):n(e[i],y,t)))continue e}g&&g.push(y),c.push(d)}}return c}function baseInverter(e,r,t,n){return baseForOwn(e,function(e,a,s){r(n,t(e),a,s)}),n}function baseIsArguments(e){return isObjectLike(e)&&baseGetTag(e)==argsTag}function baseIsEqual(e,r,t,n,a){return e===r||(null==e||null==r||!isObjectLike(e)&&!isObjectLike(r)?e!==e&&r!==r:baseIsEqualDeep(e,r,t,n,baseIsEqual,a))}function baseIsEqualDeep(e,r,t,n,a,s){var i=isArray(e),o=isArray(r),u=i?arrayTag:getTag(e),c=o?arrayTag:getTag(r);
u=u==argsTag?objectTag:u,c=c==argsTag?objectTag:c;var l=u==objectTag,f=c==objectTag,g=u==c;if(g&&isBuffer(e)){if(!isBuffer(r))return!1;i=!0,l=!1}if(g&&!l)return s||(s=new Stack),i||isTypedArray(e)?equalArrays(e,r,t,n,a,s):equalByTag(e,r,u,t,n,a,s);if(!(t&COMPARE_PARTIAL_FLAG)){var d=l&&hasOwnProperty.call(e,"__wrapped__"),y=f&&hasOwnProperty.call(r,"__wrapped__");if(d||y){var p=d?e.value():e,b=y?r.value():r;return s||(s=new Stack),a(p,b,t,n,s)}}return!!g&&(s||(s=new Stack),equalObjects(e,r,t,n,a,s));
}function baseIsMap(e){return isObjectLike(e)&&getTag(e)==mapTag}function baseIsMatch(e,r,t,n){var a=t.length,s=a,i=!n;if(null==e)return!s;for(e=Object(e);a--;){var o=t[a];if(i&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++a<s;){o=t[a];var u=o[0],c=e[u],l=o[1];if(i&&o[2]){if(c===undefined&&!(u in e))return!1}else{var f=new Stack;if(n)var g=n(c,l,u,e,r,f);if(!(g===undefined?baseIsEqual(l,c,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG,n,f):g))return!1}}return!0}function baseIsNative(e){return!(!isObject(e)||isMasked(e))&&(isFunction(e)?reIsNative:reIsHostCtor).test(toSource(e));
}function baseIsRegExp(e){return isObjectLike(e)&&baseGetTag(e)==regexpTag}function baseIsSet(e){return isObjectLike(e)&&getTag(e)==setTag}function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!typedArrayTags[baseGetTag(e)]}function baseIteratee(e){return"function"==typeof e?e:null==e?identity:"object"==typeof e?isArray(e)?baseMatchesProperty(e[0],e[1]):baseMatches(e):property(e)}function baseKeys(e){if(!isPrototype(e))return nativeKeys(e);var r=[];for(var t in Object(e))hasOwnProperty.call(e,t)&&"constructor"!=t&&r.push(t);
return r}function baseKeysIn(e){if(!isObject(e))return nativeKeysIn(e);var r=isPrototype(e),t=[];for(var n in e)("constructor"!=n||!r&&hasOwnProperty.call(e,n))&&t.push(n);return t}function baseMap(e,r){var t=-1,n=isArrayLike(e)?Array(e.length):[];return baseEach(e,function(e,a,s){n[++t]=r(e,a,s)}),n}function baseMatches(e){var r=getMatchData(e);return 1==r.length&&r[0][2]?matchesStrictComparable(r[0][0],r[0][1]):function(t){return t===e||baseIsMatch(t,e,r)}}function baseMatchesProperty(e,r){return isKey(e)&&isStrictComparable(r)?matchesStrictComparable(toKey(e),r):function(t){
var n=get(t,e);return n===undefined&&n===r?hasIn(t,e):baseIsEqual(r,n,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}function baseMerge(e,r,t,n,a){e!==r&&baseFor(r,function(s,i){if(isObject(s))a||(a=new Stack),baseMergeDeep(e,r,i,t,baseMerge,n,a);else{var o=n?n(safeGet(e,i),s,i+"",e,r,a):undefined;o===undefined&&(o=s),assignMergeValue(e,i,o)}},keysIn)}function baseMergeDeep(e,r,t,n,a,s,i){var o=safeGet(e,t),u=safeGet(r,t),c=i.get(u);if(c)return assignMergeValue(e,t,c),undefined;var l=s?s(o,u,t+"",e,r,i):undefined,f=l===undefined;
if(f){var g=isArray(u),d=!g&&isBuffer(u),y=!g&&!d&&isTypedArray(u);l=u,g||d||y?isArray(o)?l=o:isArrayLikeObject(o)?l=copyArray(o):d?(f=!1,l=cloneBuffer(u,!0)):y?(f=!1,l=cloneTypedArray(u,!0)):l=[]:isPlainObject(u)||isArguments(u)?(l=o,isArguments(o)?l=toPlainObject(o):(!isObject(o)||n&&isFunction(o))&&(l=initCloneObject(u))):f=!1}f&&(i.set(u,l),a(l,u,n,s,i),i.delete(u)),assignMergeValue(e,t,l)}function baseOrderBy(e,r,t){var n=-1;return r=arrayMap(r.length?r:[identity],baseUnary(getIteratee())),baseSortBy(baseMap(e,function(e,t,a){
return{a:arrayMap(r,function(r){return r(e)}),b:++n,c:e}}),function(e,r){return compareMultiple(e,r,t)})}function basePropertyDeep(e){return function(r){return baseGet(r,e)}}function baseRandom(e,r){return e+nativeFloor(nativeRandom()*(r-e+1))}function baseRest(e,r){return setToString(overRest(e,r,identity),e+"")}function baseSet(e,r,t,n){if(!isObject(e))return e;r=castPath(r,e);for(var a=-1,s=r.length,i=s-1,o=e;null!=o&&++a<s;){var u=toKey(r[a]),c=t;if(a!=i){var l=o[u];c=n?n(l,u,o):undefined,c===undefined&&(c=isObject(l)?l:isIndex(r[a+1])?[]:{});
}assignValue(o,u,c),o=o[u]}return e}function baseSlice(e,r,t){var n=-1,a=e.length;r<0&&(r=-r>a?0:a+r),t=t>a?a:t,t<0&&(t+=a),a=r>t?0:t-r>>>0,r>>>=0;for(var s=Array(a);++n<a;)s[n]=e[n+r];return s}function baseToString(e){if("string"==typeof e)return e;if(isArray(e))return arrayMap(e,baseToString)+"";if(isSymbol(e))return symbolToString?symbolToString.call(e):"";var r=e+"";return"0"==r&&1/e==-INFINITY?"-0":r}function baseUniq(e,r,t){var n=-1,a=arrayIncludes,s=e.length,i=!0,o=[],u=o;if(t)i=!1,a=arrayIncludesWith;else if(s>=LARGE_ARRAY_SIZE){
var c=r?null:createSet(e);if(c)return setToArray(c);i=!1,a=cacheHas,u=new SetCache}else u=r?[]:o;e:for(;++n<s;){var l=e[n],f=r?r(l):l;if(l=t||0!==l?l:0,i&&f===f){for(var g=u.length;g--;)if(u[g]===f)continue e;r&&u.push(f),o.push(l)}else a(u,f,t)||(u!==o&&u.push(f),o.push(l))}return o}function baseUnset(e,r){return r=castPath(r,e),e=parent(e,r),null==e||delete e[toKey(last(r))]}function baseUpdate(e,r,t,n){return baseSet(e,r,t(baseGet(e,r)),n)}function castArrayLikeObject(e){return isArrayLikeObject(e)?e:[];
}function castFunction(e){return"function"==typeof e?e:identity}function castPath(e,r){return isArray(e)?e:isKey(e,r)?[e]:stringToPath(toString(e))}function castSlice(e,r,t){var n=e.length;return t=t===undefined?n:t,!r&&t>=n?e:baseSlice(e,r,t)}function cloneBuffer(e,r){if(r)return e.slice();var t=e.length,n=allocUnsafe?allocUnsafe(t):new e.constructor(t);return e.copy(n),n}function cloneArrayBuffer(e){var r=new e.constructor(e.byteLength);return new Uint8Array(r).set(new Uint8Array(e)),r}function cloneDataView(e,r){
return new e.constructor(r?cloneArrayBuffer(e.buffer):e.buffer,e.byteOffset,e.byteLength)}function cloneRegExp(e){var r=new e.constructor(e.source,reFlags.exec(e));return r.lastIndex=e.lastIndex,r}function cloneSymbol(e){return symbolValueOf?Object(symbolValueOf.call(e)):{}}function cloneTypedArray(e,r){return new e.constructor(r?cloneArrayBuffer(e.buffer):e.buffer,e.byteOffset,e.length)}function compareAscending(e,r){if(e!==r){var t=e!==undefined,n=null===e,a=e===e,s=isSymbol(e),i=r!==undefined,o=null===r,u=r===r,c=isSymbol(r);
if(!o&&!c&&!s&&e>r||s&&i&&u&&!o&&!c||n&&i&&u||!t&&u||!a)return 1;if(!n&&!s&&!c&&e<r||c&&t&&a&&!n&&!s||o&&t&&a||!i&&a||!u)return-1}return 0}function compareMultiple(e,r,t){for(var n=-1,a=e.a,s=r.a,i=a.length,o=t.length;++n<i;){var u=compareAscending(a[n],s[n]);if(u){if(n>=o)return u;return u*("desc"==t[n]?-1:1)}}return e.b-r.b}function copyArray(e,r){var t=-1,n=e.length;for(r||(r=Array(n));++t<n;)r[t]=e[t];return r}function copyObject(e,r,t,n){var a=!t;t||(t={});for(var s=-1,i=r.length;++s<i;){var o=r[s],u=n?n(t[o],e[o],o,t,e):undefined;
u===undefined&&(u=e[o]),a?baseAssignValue(t,o,u):assignValue(t,o,u)}return t}function copySymbols(e,r){return copyObject(e,getSymbols(e),r)}function copySymbolsIn(e,r){return copyObject(e,getSymbolsIn(e),r)}function createAggregator(e,r){return function(t,n){var a=isArray(t)?arrayAggregator:baseAggregator,s=r?r():{};return a(t,e,getIteratee(n,2),s)}}function createAssigner(e){return baseRest(function(r,t){var n=-1,a=t.length,s=a>1?t[a-1]:undefined,i=a>2?t[2]:undefined;for(s=e.length>3&&"function"==typeof s?(a--,
s):undefined,i&&isIterateeCall(t[0],t[1],i)&&(s=a<3?undefined:s,a=1),r=Object(r);++n<a;){var o=t[n];o&&e(r,o,n,s)}return r})}function createBaseEach(e,r){return function(t,n){if(null==t)return t;if(!isArrayLike(t))return e(t,n);for(var a=t.length,s=r?a:-1,i=Object(t);(r?s--:++s<a)&&n(i[s],s,i)!==!1;);return t}}function createBaseFor(e){return function(r,t,n){for(var a=-1,s=Object(r),i=n(r),o=i.length;o--;){var u=i[e?o:++a];if(t(s[u],u,s)===!1)break}return r}}function createCaseFirst(e){return function(r){
r=toString(r);var t=hasUnicode(r)?stringToArray(r):undefined,n=t?t[0]:r.charAt(0),a=t?castSlice(t,1).join(""):r.slice(1);return n[e]()+a}}function createCompounder(e){return function(r){return arrayReduce(words(deburr(r).replace(reApos,"")),e,"")}}function createFind(e){return function(r,t,n){var a=Object(r);if(!isArrayLike(r)){var s=getIteratee(t,3);r=keys(r),t=function(e){return s(a[e],e,a)}}var i=e(r,t,n);return i>-1?a[s?r[i]:i]:undefined}}function createInverter(e,r){return function(t,n){return baseInverter(t,e,r(n),{});
}}function createRound(e){var r=Math[e];return function(e,t){if(e=toNumber(e),t=null==t?0:nativeMin(toInteger(t),292)){var n=(toString(e)+"e").split("e");return n=(toString(r(n[0]+"e"+(+n[1]+t)))+"e").split("e"),+(n[0]+"e"+(+n[1]-t))}return r(e)}}function createToPairs(e){return function(r){var t=getTag(r);return t==mapTag?mapToArray(r):t==setTag?setToPairs(r):baseToPairs(r,e(r))}}function equalArrays(e,r,t,n,a,s){var i=t&COMPARE_PARTIAL_FLAG,o=e.length,u=r.length;if(o!=u&&!(i&&u>o))return!1;var c=s.get(e);
if(c&&s.get(r))return c==r;var l=-1,f=!0,g=t&COMPARE_UNORDERED_FLAG?new SetCache:undefined;for(s.set(e,r),s.set(r,e);++l<o;){var d=e[l],y=r[l];if(n)var p=i?n(y,d,l,r,e,s):n(d,y,l,e,r,s);if(p!==undefined){if(p)continue;f=!1;break}if(g){if(!arraySome(r,function(e,r){if(!cacheHas(g,r)&&(d===e||a(d,e,t,n,s)))return g.push(r)})){f=!1;break}}else if(d!==y&&!a(d,y,t,n,s)){f=!1;break}}return s.delete(e),s.delete(r),f}function equalByTag(e,r,t,n,a,s,i){switch(t){case dataViewTag:if(e.byteLength!=r.byteLength||e.byteOffset!=r.byteOffset)return!1;
e=e.buffer,r=r.buffer;case arrayBufferTag:return!(e.byteLength!=r.byteLength||!s(new Uint8Array(e),new Uint8Array(r)));case boolTag:case dateTag:case numberTag:return eq(+e,+r);case errorTag:return e.name==r.name&&e.message==r.message;case regexpTag:case stringTag:return e==r+"";case mapTag:var o=mapToArray;case setTag:var u=n&COMPARE_PARTIAL_FLAG;if(o||(o=setToArray),e.size!=r.size&&!u)return!1;var c=i.get(e);if(c)return c==r;n|=COMPARE_UNORDERED_FLAG,i.set(e,r);var l=equalArrays(o(e),o(r),n,a,s,i);
return i.delete(e),l;case symbolTag:if(symbolValueOf)return symbolValueOf.call(e)==symbolValueOf.call(r)}return!1}function equalObjects(e,r,t,n,a,s){var i=t&COMPARE_PARTIAL_FLAG,o=getAllKeys(e),u=o.length;if(u!=getAllKeys(r).length&&!i)return!1;for(var c=u;c--;){var l=o[c];if(!(i?l in r:hasOwnProperty.call(r,l)))return!1}var f=s.get(e);if(f&&s.get(r))return f==r;var g=!0;s.set(e,r),s.set(r,e);for(var d=i;++c<u;){l=o[c];var y=e[l],p=r[l];if(n)var b=i?n(p,y,l,r,e,s):n(y,p,l,e,r,s);if(!(b===undefined?y===p||a(y,p,t,n,s):b)){
g=!1;break}d||(d="constructor"==l)}if(g&&!d){var h=e.constructor,T=r.constructor;h!=T&&"constructor"in e&&"constructor"in r&&!("function"==typeof h&&h instanceof h&&"function"==typeof T&&T instanceof T)&&(g=!1)}return s.delete(e),s.delete(r),g}function getAllKeys(e){return baseGetAllKeys(e,keys,getSymbols)}function getAllKeysIn(e){return baseGetAllKeys(e,keysIn,getSymbolsIn)}function getIteratee(){var e=lodash.iteratee||iteratee;return e=e===iteratee?baseIteratee:e,arguments.length?e(arguments[0],arguments[1]):e;
}function getMapData(e,r){var t=e.__data__;return isKeyable(r)?t["string"==typeof r?"string":"hash"]:t.map}function getMatchData(e){for(var r=keys(e),t=r.length;t--;){var n=r[t],a=e[n];r[t]=[n,a,isStrictComparable(a)]}return r}function getNative(e,r){var t=getValue(e,r);return baseIsNative(t)?t:undefined}function getRawTag(e){var r=hasOwnProperty.call(e,symToStringTag),t=e[symToStringTag];try{e[symToStringTag]=undefined;var n=!0}catch(e){}var a=nativeObjectToString.call(e);return n&&(r?e[symToStringTag]=t:delete e[symToStringTag]),
a}function hasPath(e,r,t){r=castPath(r,e);for(var n=-1,a=r.length,s=!1;++n<a;){var i=toKey(r[n]);if(!(s=null!=e&&t(e,i)))break;e=e[i]}return s||++n!=a?s:(a=null==e?0:e.length,!!a&&isLength(a)&&isIndex(i,a)&&(isArray(e)||isArguments(e)))}function initCloneArray(e){var r=e.length,t=new e.constructor(r);return r&&"string"==typeof e[0]&&hasOwnProperty.call(e,"index")&&(t.index=e.index,t.input=e.input),t}function initCloneObject(e){return"function"!=typeof e.constructor||isPrototype(e)?{}:baseCreate(getPrototype(e));
}function initCloneByTag(e,r,t){var n=e.constructor;switch(r){case arrayBufferTag:return cloneArrayBuffer(e);case boolTag:case dateTag:return new n(+e);case dataViewTag:return cloneDataView(e,t);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:return cloneTypedArray(e,t);case mapTag:return new n;case numberTag:case stringTag:return new n(e);case regexpTag:return cloneRegExp(e);case setTag:return new n;case symbolTag:
return cloneSymbol(e)}}function isFlattenable(e){return isArray(e)||isArguments(e)||!!(spreadableSymbol&&e&&e[spreadableSymbol])}function isIndex(e,r){var t=typeof e;return r=null==r?MAX_SAFE_INTEGER:r,!!r&&("number"==t||"symbol"!=t&&reIsUint.test(e))&&e>-1&&e%1==0&&e<r}function isIterateeCall(e,r,t){if(!isObject(t))return!1;var n=typeof r;return!!("number"==n?isArrayLike(t)&&isIndex(r,t.length):"string"==n&&r in t)&&eq(t[r],e)}function isKey(e,r){if(isArray(e))return!1;var t=typeof e;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=e&&!isSymbol(e))||(reIsPlainProp.test(e)||!reIsDeepProp.test(e)||null!=r&&e in Object(r));
}function isKeyable(e){var r=typeof e;return"string"==r||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==e:null===e}function isMasked(e){return!!maskSrcKey&&maskSrcKey in e}function isPrototype(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||objectProto)}function isStrictComparable(e){return e===e&&!isObject(e)}function matchesStrictComparable(e,r){return function(t){return null!=t&&(t[e]===r&&(r!==undefined||e in Object(t)))}}function memoizeCapped(e){var r=memoize(e,function(e){
return t.size===MAX_MEMOIZE_SIZE&&t.clear(),e}),t=r.cache;return r}function nativeKeysIn(e){var r=[];if(null!=e)for(var t in Object(e))r.push(t);return r}function objectToString(e){return nativeObjectToString.call(e)}function overRest(e,r,t){return r=nativeMax(r===undefined?e.length-1:r,0),function(){for(var n=arguments,a=-1,s=nativeMax(n.length-r,0),i=Array(s);++a<s;)i[a]=n[r+a];a=-1;for(var o=Array(r+1);++a<r;)o[a]=n[a];return o[r]=t(i),apply(e,this,o)}}function parent(e,r){return r.length<2?e:baseGet(e,baseSlice(r,0,-1));
}function shortOut(e){var r=0,t=0;return function(){var n=nativeNow(),a=HOT_SPAN-(n-t);if(t=n,a>0){if(++r>=HOT_COUNT)return arguments[0]}else r=0;return e.apply(undefined,arguments)}}function toKey(e){if("string"==typeof e||isSymbol(e))return e;var r=e+"";return"0"==r&&1/e==-INFINITY?"-0":r}function toSource(e){if(null!=e){try{return funcToString.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function chunk(e,r,t){r=(t?isIterateeCall(e,r,t):r===undefined)?1:nativeMax(toInteger(r),0);var n=null==e?0:e.length;
if(!n||r<1)return[];for(var a=0,s=0,i=Array(nativeCeil(n/r));a<n;)i[s++]=baseSlice(e,a,a+=r);return i}function findIndex(e,r,t){var n=null==e?0:e.length;if(!n)return-1;var a=null==t?0:toInteger(t);return a<0&&(a=nativeMax(n+a,0)),baseFindIndex(e,getIteratee(r,3),a)}function flatten(e){return(null==e?0:e.length)?baseFlatten(e,1):[]}function fromPairs(e){for(var r=-1,t=null==e?0:e.length,n={};++r<t;){var a=e[r];n[a[0]]=a[1]}return n}function last(e){var r=null==e?0:e.length;return r?e[r-1]:undefined;
}function uniq(e){return e&&e.length?baseUniq(e):[]}function uniqBy(e,r){return e&&e.length?baseUniq(e,getIteratee(r,2)):[]}function forEach(e,r){return(isArray(e)?arrayEach:baseEach)(e,getIteratee(r,3))}function before(e,r){var t;if("function"!=typeof r)throw new TypeError(FUNC_ERROR_TEXT);return e=toInteger(e),function(){return--e>0&&(t=r.apply(this,arguments)),e<=1&&(r=undefined),t}}function debounce(e,r,t){function n(r){var t=g,n=d;return g=d=undefined,T=r,p=e.apply(n,t)}function a(e){return T=e,
b=setTimeout(o,r),A?n(e):p}function s(e){var t=e-h,n=e-T,a=r-t;return m?nativeMin(a,y-n):a}function i(e){var t=e-h,n=e-T;return h===undefined||t>=r||t<0||m&&n>=y}function o(){var e=now();return i(e)?u(e):(b=setTimeout(o,s(e)),undefined)}function u(e){return b=undefined,v&&g?n(e):(g=d=undefined,p)}function c(){b!==undefined&&clearTimeout(b),T=0,g=h=d=b=undefined}function l(){return b===undefined?p:u(now())}function f(){var e=now(),t=i(e);if(g=arguments,d=this,h=e,t){if(b===undefined)return a(h);if(m)return b=setTimeout(o,r),
n(h)}return b===undefined&&(b=setTimeout(o,r)),p}var g,d,y,p,b,h,T=0,A=!1,m=!1,v=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return r=toNumber(r)||0,isObject(t)&&(A=!!t.leading,m="maxWait"in t,y=m?nativeMax(toNumber(t.maxWait)||0,r):y,v="trailing"in t?!!t.trailing:v),f.cancel=c,f.flush=l,f}function memoize(e,r){if("function"!=typeof e||null!=r&&"function"!=typeof r)throw new TypeError(FUNC_ERROR_TEXT);var t=function(){var n=arguments,a=r?r.apply(this,n):n[0],s=t.cache;if(s.has(a))return s.get(a);
var i=e.apply(this,n);return t.cache=s.set(a,i)||s,i};return t.cache=new(memoize.Cache||MapCache),t}function once(e){return before(2,e)}function throttle(e,r,t){var n=!0,a=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(t)&&(n="leading"in t?!!t.leading:n,a="trailing"in t?!!t.trailing:a),debounce(e,r,{leading:n,maxWait:r,trailing:a})}function clone(e){return baseClone(e,CLONE_SYMBOLS_FLAG)}function cloneDeep(e){return baseClone(e,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}
function cloneDeepWith(e,r){return r="function"==typeof r?r:undefined,baseClone(e,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG,r)}function eq(e,r){return e===r||e!==e&&r!==r}function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction(e)}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}function isElement(e){return isObjectLike(e)&&1===e.nodeType&&!isPlainObject(e)}function isEmpty(e){if(null==e)return!0;if(isArrayLike(e)&&(isArray(e)||"string"==typeof e||"function"==typeof e.splice||isBuffer(e)||isTypedArray(e)||isArguments(e)))return!e.length;
var r=getTag(e);if(r==mapTag||r==setTag)return!e.size;if(isPrototype(e))return!baseKeys(e).length;for(var t in e)if(hasOwnProperty.call(e,t))return!1;return!0}function isEqual(e,r){return baseIsEqual(e,r)}function isFunction(e){if(!isObject(e))return!1;var r=baseGetTag(e);return r==funcTag||r==genTag||r==asyncTag||r==proxyTag}function isLength(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function isObject(e){var r=typeof e;return null!=e&&("object"==r||"function"==r)}function isObjectLike(e){
return null!=e&&"object"==typeof e}function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag)return!1;var r=getPrototype(e);if(null===r)return!0;var t=hasOwnProperty.call(r,"constructor")&&r.constructor;return"function"==typeof t&&t instanceof t&&funcToString.call(t)==objectCtorString}function isString(e){return"string"==typeof e||!isArray(e)&&isObjectLike(e)&&baseGetTag(e)==stringTag}function isSymbol(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag}function toArray(e){
if(!e)return[];if(isArrayLike(e))return isString(e)?stringToArray(e):copyArray(e);if(symIterator&&e[symIterator])return iteratorToArray(e[symIterator]());var r=getTag(e);return(r==mapTag?mapToArray:r==setTag?setToArray:values)(e)}function toFinite(e){if(!e)return 0===e?e:0;if(e=toNumber(e),e===INFINITY||e===-INFINITY){return(e<0?-1:1)*MAX_INTEGER}return e===e?e:0}function toInteger(e){var r=toFinite(e),t=r%1;return r===r?t?r-t:r:0}function toNumber(e){if("number"==typeof e)return e;if(isSymbol(e))return NAN;
if(isObject(e)){var r="function"==typeof e.valueOf?e.valueOf():e;e=isObject(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(reTrim,"");var t=reIsBinary.test(e);return t||reIsOctal.test(e)?freeParseInt(e.slice(2),t?2:8):reIsBadHex.test(e)?NAN:+e}function toPlainObject(e){return copyObject(e,keysIn(e))}function toString(e){return null==e?"":baseToString(e)}function findKey(e,r){return baseFindKey(e,getIteratee(r,3),baseForOwn)}function forIn(e,r){return null==e?e:baseFor(e,getIteratee(r,3),keysIn);
}function get(e,r,t){var n=null==e?undefined:baseGet(e,r);return n===undefined?t:n}function has(e,r){return null!=e&&hasPath(e,r,baseHas)}function hasIn(e,r){return null!=e&&hasPath(e,r,baseHasIn)}function keys(e){return isArrayLike(e)?arrayLikeKeys(e):baseKeys(e)}function keysIn(e){return isArrayLike(e)?arrayLikeKeys(e,!0):baseKeysIn(e)}function set(e,r,t){return null==e?e:baseSet(e,r,t)}function unset(e,r){return null==e||baseUnset(e,r)}function update(e,r,t){return null==e?e:baseUpdate(e,r,castFunction(t));
}function values(e){return null==e?[]:baseValues(e,keys(e))}function random(e,r,t){if(t&&"boolean"!=typeof t&&isIterateeCall(e,r,t)&&(r=t=undefined),t===undefined&&("boolean"==typeof r?(t=r,r=undefined):"boolean"==typeof e&&(t=e,e=undefined)),e===undefined&&r===undefined?(e=0,r=1):(e=toFinite(e),r===undefined?(r=e,e=0):r=toFinite(r)),e>r){var n=e;e=r,r=n}if(t||e%1||r%1){var a=nativeRandom();return nativeMin(e+a*(r-e+freeParseFloat("1e-"+((a+"").length-1))),r)}return baseRandom(e,r)}function capitalize(e){
return upperFirst(toString(e).toLowerCase())}function deburr(e){return e=toString(e),e&&e.replace(reLatin,deburrLetter).replace(reComboMark,"")}function escape(e){return e=toString(e),e&&reHasUnescapedHtml.test(e)?e.replace(reUnescapedHtml,escapeHtmlChar):e}function escapeRegExp(e){return e=toString(e),e&&reHasRegExpChar.test(e)?e.replace(reRegExpChar,"\\$&"):e}function trimEnd(e,r,t){if(e=toString(e),e&&(t||r===undefined))return e.replace(reTrimEnd,"");if(!e||!(r=baseToString(r)))return e;var n=stringToArray(e);
return castSlice(n,0,charsEndIndex(n,stringToArray(r))+1).join("")}function trimStart(e,r,t){if(e=toString(e),e&&(t||r===undefined))return e.replace(reTrimStart,"");if(!e||!(r=baseToString(r)))return e;var n=stringToArray(e);return castSlice(n,charsStartIndex(n,stringToArray(r))).join("")}function truncate(e,r){var t=DEFAULT_TRUNC_LENGTH,n=DEFAULT_TRUNC_OMISSION;if(isObject(r)){var a="separator"in r?r.separator:a;t="length"in r?toInteger(r.length):t,n="omission"in r?baseToString(r.omission):n}e=toString(e);
var s=e.length;if(hasUnicode(e)){var i=stringToArray(e);s=i.length}if(t>=s)return e;var o=t-stringSize(n);if(o<1)return n;var u=i?castSlice(i,0,o).join(""):e.slice(0,o);if(a===undefined)return u+n;if(i&&(o+=u.length-o),isRegExp(a)){if(e.slice(o).search(a)){var c,l=u;for(a.global||(a=RegExp(a.source,toString(reFlags.exec(a))+"g")),a.lastIndex=0;c=a.exec(l);)var f=c.index;u=u.slice(0,f===undefined?o:f)}}else if(e.indexOf(baseToString(a),o)!=o){var g=u.lastIndexOf(a);g>-1&&(u=u.slice(0,g))}return u+n;
}function unescape(e){return e=toString(e),e&&reHasEscapedHtml.test(e)?e.replace(reEscapedHtml,unescapeHtmlChar):e}function words(e,r,t){return e=toString(e),r=t?undefined:r,r===undefined?hasUnicodeWord(e)?unicodeWords(e):asciiWords(e):e.match(r)||[]}function constant(e){return function(){return e}}function identity(e){return e}function iteratee(e){return baseIteratee("function"==typeof e?e:baseClone(e,CLONE_DEEP_FLAG))}function noop(){}function property(e){return isKey(e)?baseProperty(toKey(e)):basePropertyDeep(e);
}function stubArray(){return[]}function stubFalse(){return!1}function times(e,r){if(e=toInteger(e),e<1||e>MAX_SAFE_INTEGER)return[];var t=MAX_ARRAY_LENGTH,n=nativeMin(e,MAX_ARRAY_LENGTH);r=getIteratee(r),e-=MAX_ARRAY_LENGTH;for(var a=baseTimes(n,r);++t<e;)r(t);return a}function sumBy(e,r){return e&&e.length?baseSum(e,getIteratee(r,2)):0}var tempModule=module,exports=undefined,module=undefined,global=undefined,undefined,VERSION="4.17.5",LARGE_ARRAY_SIZE=200,FUNC_ERROR_TEXT="Expected a function",HASH_UNDEFINED="__lodash_hash_undefined__",MAX_MEMOIZE_SIZE=500,CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2,DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",HOT_COUNT=800,HOT_SPAN=16,INFINITY=1/0,MAX_SAFE_INTEGER=9007199254740991,MAX_INTEGER=1.7976931348623157e308,NAN=NaN,MAX_ARRAY_LENGTH=4294967295,argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source),reTrim=/^\s+|\s+$/g,reTrimStart=/^\s+/,reTrimEnd=/\s+$/,reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,reEscapeChar=/\\(\\)?/g,reFlags=/\w*$/,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsHostCtor=/^\[object .+?Constructor\]$/,reIsOctal=/^0o[0-7]+$/i,reIsUint=/^(?:0|[1-9]\d*)$/,reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange,rsApos="['\u2019]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d",rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rsOrdUpper="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reApos=RegExp(rsApos,"g"),reComboMark=RegExp(rsCombo,"g"),reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g"),reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g"),reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]"),reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,typedArrayTags={};
typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;
var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,
cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;var deburredLetters={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O",
"\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d",
"\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L",
"\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T",
"\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"
},htmlUnescapes={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},freeParseFloat=parseFloat,freeParseInt=parseInt,freeGlobal="object"==typeof global&&global&&global.Object===Object&&global,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,freeProcess=moduleExports&&freeGlobal.process,nodeUtil=function(){
try{return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,asciiSize=baseProperty("length"),deburrLetter=basePropertyOf(deburredLetters),escapeHtmlChar=basePropertyOf(htmlEscapes),unescapeHtmlChar=basePropertyOf(htmlUnescapes),arrayProto=Array.prototype,funcProto=Function.prototype,objectProto=Object.prototype,coreJsData=root["__core-js_shared__"],funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,maskSrcKey=function(){
var e=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),nativeObjectToString=objectProto.toString,objectCtorString=funcToString.call(Object),reIsNative=RegExp("^"+funcToString.call(hasOwnProperty).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Buffer=moduleExports?root.Buffer:undefined,Symbol=root.Symbol,Uint8Array=root.Uint8Array,allocUnsafe=Buffer?Buffer.allocUnsafe:undefined,getPrototype=overArg(Object.getPrototypeOf,Object),objectCreate=Object.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,spreadableSymbol=Symbol?Symbol.isConcatSpreadable:undefined,symIterator=Symbol?Symbol.iterator:undefined,symToStringTag=Symbol?Symbol.toStringTag:undefined,defineProperty=function(){
try{var e=getNative(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),nativeCeil=Math.ceil,nativeFloor=Math.floor,nativeGetSymbols=Object.getOwnPropertySymbols,nativeIsBuffer=Buffer?Buffer.isBuffer:undefined,nativeKeys=overArg(Object.keys,Object),nativeMax=Math.max,nativeMin=Math.min,nativeNow=Date.now,nativeRandom=Math.random,DataView=getNative(root,"DataView"),Map=getNative(root,"Map"),Promise=getNative(root,"Promise"),Set=getNative(root,"Set"),WeakMap=getNative(root,"WeakMap"),nativeCreate=getNative(Object,"create"),realNames={},dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map),promiseCtorString=toSource(Promise),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap),symbolProto=Symbol?Symbol.prototype:undefined,symbolValueOf=symbolProto?symbolProto.valueOf:undefined,symbolToString=symbolProto?symbolProto.toString:undefined,baseCreate=function(){
function e(){}return function(r){if(!isObject(r))return{};if(objectCreate)return objectCreate(r);e.prototype=r;var t=new e;return e.prototype=undefined,t}}();Hash.prototype.clear=hashClear,Hash.prototype.delete=hashDelete,Hash.prototype.get=hashGet,Hash.prototype.has=hashHas,Hash.prototype.set=hashSet,ListCache.prototype.clear=listCacheClear,ListCache.prototype.delete=listCacheDelete,ListCache.prototype.get=listCacheGet,ListCache.prototype.has=listCacheHas,ListCache.prototype.set=listCacheSet,MapCache.prototype.clear=mapCacheClear,
MapCache.prototype.delete=mapCacheDelete,MapCache.prototype.get=mapCacheGet,MapCache.prototype.has=mapCacheHas,MapCache.prototype.set=mapCacheSet,SetCache.prototype.add=SetCache.prototype.push=setCacheAdd,SetCache.prototype.has=setCacheHas,Stack.prototype.clear=stackClear,Stack.prototype.delete=stackDelete,Stack.prototype.get=stackGet,Stack.prototype.has=stackHas,Stack.prototype.set=stackSet;var baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor(),baseSetToString=defineProperty?function(e,r){
return defineProperty(e,"toString",{configurable:!0,enumerable:!1,value:constant(r),writable:!0})}:identity,createSet=Set&&1/setToArray(new Set([,-0]))[1]==INFINITY?function(e){return new Set(e)}:noop,getSymbols=nativeGetSymbols?function(e){return null==e?[]:(e=Object(e),arrayFilter(nativeGetSymbols(e),function(r){return propertyIsEnumerable.call(e,r)}))}:stubArray,getSymbolsIn=nativeGetSymbols?function(e){for(var r=[];e;)arrayPush(r,getSymbols(e)),e=getPrototype(e);return r}:stubArray,getTag=baseGetTag;
(DataView&&getTag(new DataView(new ArrayBuffer(1)))!=dataViewTag||Map&&getTag(new Map)!=mapTag||Promise&&getTag(Promise.resolve())!=promiseTag||Set&&getTag(new Set)!=setTag||WeakMap&&getTag(new WeakMap)!=weakMapTag)&&(getTag=function(e){var r=baseGetTag(e),t=r==objectTag?e.constructor:undefined,n=t?toSource(t):"";if(n)switch(n){case dataViewCtorString:return dataViewTag;case mapCtorString:return mapTag;case promiseCtorString:return promiseTag;case setCtorString:return setTag;case weakMapCtorString:
return weakMapTag}return r});var setToString=shortOut(baseSetToString),stringToPath=memoizeCapped(function(e){var r=[];return 46===e.charCodeAt(0)&&r.push(""),e.replace(rePropName,function(e,t,n,a){r.push(n?a.replace(reEscapeChar,"$1"):t||e)}),r}),difference=baseRest(function(e,r){return isArrayLikeObject(e)?baseDifference(e,baseFlatten(r,1,isArrayLikeObject,!0)):[]}),differenceBy=baseRest(function(e,r){var t=last(r);return isArrayLikeObject(t)&&(t=undefined),isArrayLikeObject(e)?baseDifference(e,baseFlatten(r,1,isArrayLikeObject,!0),getIteratee(t,2)):[];
}),differenceWith=baseRest(function(e,r){var t=last(r);return isArrayLikeObject(t)&&(t=undefined),isArrayLikeObject(e)?baseDifference(e,baseFlatten(r,1,isArrayLikeObject,!0),undefined,t):[]}),intersection=baseRest(function(e){var r=arrayMap(e,castArrayLikeObject);return r.length&&r[0]===e[0]?baseIntersection(r):[]}),without=baseRest(function(e,r){return isArrayLikeObject(e)?baseDifference(e,r):[]}),find=createFind(findIndex),groupBy=createAggregator(function(e,r,t){hasOwnProperty.call(e,t)?e[t].push(r):baseAssignValue(e,t,[r]);
}),sortBy=baseRest(function(e,r){if(null==e)return[];var t=r.length;return t>1&&isIterateeCall(e,r[0],r[1])?r=[]:t>2&&isIterateeCall(r[0],r[1],r[2])&&(r=[r[0]]),baseOrderBy(e,baseFlatten(r,1),[])}),now=function(){return root.Date.now()};memoize.Cache=MapCache;var isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(e){return isObjectLike(e)&&hasOwnProperty.call(e,"callee")&&!propertyIsEnumerable.call(e,"callee")},isArray=Array.isArray,isBuffer=nativeIsBuffer||stubFalse,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,assign=createAssigner(function(e,r){
if(isPrototype(r)||isArrayLike(r))return copyObject(r,keys(r),e),undefined;for(var t in r)hasOwnProperty.call(r,t)&&assignValue(e,t,r[t])}),assignIn=createAssigner(function(e,r){copyObject(r,keysIn(r),e)}),invert=createInverter(function(e,r,t){null!=r&&"function"!=typeof r.toString&&(r=nativeObjectToString.call(r)),e[r]=t},constant(identity)),merge=createAssigner(function(e,r,t){baseMerge(e,r,t)}),toPairs=createToPairs(keys),camelCase=createCompounder(function(e,r,t){return r=r.toLowerCase(),e+(t?capitalize(r):r);
}),upperFirst=createCaseFirst("toUpperCase"),round=createRound("round");lodash.assign=assign,lodash.assignIn=assignIn,lodash.before=before,lodash.chunk=chunk,lodash.constant=constant,lodash.debounce=debounce,lodash.difference=difference,lodash.differenceBy=differenceBy,lodash.differenceWith=differenceWith,lodash.flatten=flatten,lodash.fromPairs=fromPairs,lodash.groupBy=groupBy,lodash.intersection=intersection,lodash.invert=invert,lodash.iteratee=iteratee,lodash.keys=keys,lodash.keysIn=keysIn,lodash.memoize=memoize,
lodash.merge=merge,lodash.once=once,lodash.property=property,lodash.set=set,lodash.sortBy=sortBy,lodash.throttle=throttle,lodash.toArray=toArray,lodash.toPairs=toPairs,lodash.toPlainObject=toPlainObject,lodash.uniq=uniq,lodash.uniqBy=uniqBy,lodash.unset=unset,lodash.update=update,lodash.values=values,lodash.without=without,lodash.words=words,lodash.entries=toPairs,lodash.extend=assignIn,lodash.camelCase=camelCase,lodash.capitalize=capitalize,lodash.clone=clone,lodash.cloneDeep=cloneDeep,lodash.cloneDeepWith=cloneDeepWith,
lodash.deburr=deburr,lodash.eq=eq,lodash.escape=escape,lodash.escapeRegExp=escapeRegExp,lodash.find=find,lodash.findIndex=findIndex,lodash.findKey=findKey,lodash.forEach=forEach,lodash.forIn=forIn,lodash.get=get,lodash.has=has,lodash.hasIn=hasIn,lodash.identity=identity,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isArrayLike=isArrayLike,lodash.isArrayLikeObject=isArrayLikeObject,lodash.isBuffer=isBuffer,lodash.isElement=isElement,lodash.isEmpty=isEmpty,lodash.isEqual=isEqual,lodash.isFunction=isFunction,
lodash.isLength=isLength,lodash.isMap=isMap,lodash.isObject=isObject,lodash.isObjectLike=isObjectLike,lodash.isPlainObject=isPlainObject,lodash.isRegExp=isRegExp,lodash.isSet=isSet,lodash.isString=isString,lodash.isSymbol=isSymbol,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.stubArray=stubArray,lodash.stubFalse=stubFalse,lodash.noop=noop,lodash.now=now,lodash.random=random,lodash.round=round,lodash.sumBy=sumBy,lodash.times=times,lodash.toFinite=toFinite,lodash.toInteger=toInteger,lodash.toNumber=toNumber,
lodash.toString=toString,lodash.trimEnd=trimEnd,lodash.trimStart=trimStart,lodash.truncate=truncate,lodash.unescape=unescape,lodash.upperFirst=upperFirst,lodash.each=forEach,lodash.VERSION=VERSION,lodash.each(Object.keys(lodash),function(e){tempModule.exports[e]=lodash[e]});


/***/ })

/******/ })});;
//# sourceMappingURL=sp-lodash-subset.js.map


define("7263c7d0-1d6a-45ec-8d85-d4d1d234171b_1.10.0", ["@microsoft/sp-lodash-subset"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__) { return /******/ (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 = "./sp-core-library.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_gIErrcTokcw+/VVwa+ReIA": {
      "invalidEnvironmentTypeError": "***EnvironmentType is invalid",
      "invalidGuidStringError": "***Invalid GUID string: \"{0}\"",
      "isFalseValidateError": "***The value for \"{0}\" is false",
      "isNullValidateError": "***The value for \"{0}\" must not be null",
      "isUndefinedValidateError": "***The value for \"{0}\" must not be undefined",
      "isEmptyStringValidateError": "***The value for \"{0}\" must not be an empty string",
      "isDisposedValidateError": "***The \"{0}\" object cannot be used because it has been disposed.",
      "invalidVersionStringError": "***Invalid version string: \"{0}\"",
      "logVerboseLevelMessage": "***{0}: VERBOSE {1}",
      "logInfoLevelMessage": "***{0}: {1}",
      "logWarningLevelMessage": "***{0}: WARNING {1}",
      "logErrorLevelMessage": "***{0}: ERROR: {1}",
      "serviceScopeConsumingBeforeFinished": "***Cannot consume services because the scope is not finished yet",
      "serviceScopeConsumingDuringAutoCreation": "***Cannot consume services during ServiceScope autocreation",
      "serviceScopeAlreadyFinishedError": "***The ServiceScope is already finished",
      "serviceScopeProvideServiceAfterFinishedError": "***Cannot register service because the scope is already finished",
      "serviceScopeProvideServiceThatAlreadyExists": "***The service key \"{0}\" has already been registered in this scope",
      "spErrorInnerErrorText": "***INNERERROR:",
      "spErrorCallStackText": "***CALLSTACK:",
      "spErrorLogPropertiesText": "***LOGPROPERTIES:"
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-core-library.js":
/*!****************************!*\
  !*** ./sp-core-library.js ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @microsoft/sp-lodash-subset */ "@microsoft/sp-lodash-subset"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_vpy3__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "2Wio":
/*!*****************************!*\
  !*** ./lib/SPKillSwitch.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Guid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Guid */ "UCHU");

/**
 * This class supports Microsoft's internal deployment workflow.
 *
 * @internal
 */
var SPKillSwitch = /** @class */ (function () {
    function SPKillSwitch() {
    }
    /**
     * RESERVED FOR INTERNAL USAGE.  This method is invoked automatically by the system shell.
     * The application code should not call it directly.
     */
    SPKillSwitch.initialize = function (killSwitchGuids) {
        this._isInitialized = true;
        this._activatedKillSwitches = new Map();
        if (killSwitchGuids) {
            for (var _i = 0, _a = Object.keys(killSwitchGuids); _i < _a.length; _i++) {
                var killSwitchGuid = _a[_i];
                var normalizedKillSwitchGuid = _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].tryParse(killSwitchGuid);
                if (normalizedKillSwitchGuid) {
                    this._activatedKillSwitches.set(normalizedKillSwitchGuid.toString(), true);
                }
            }
        }
    };
    /**
     * RESERVED FOR INTERNAL USAGE.  This method is invoked automatically by the system shell.
     * The application code should not call it directly.
     */
    SPKillSwitch.setDebugKillswitches = function (debugKillswitches) {
        if (!this._isInitialized && !false) {
            throw new Error('Killswitches are not initialized. Can\'t set debug killswitched.');
        }
        // 'debugKillSwitches' value is expected to be a comma separated guild list.
        if (debugKillswitches && debugKillswitches.length) {
            try {
                for (var _i = 0, _a = debugKillswitches.split(',').map(function (value) { return _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].tryParse(value); }); _i < _a.length; _i++) {
                    var killSwitch = _a[_i];
                    if (killSwitch) {
                        this._activatedKillSwitches.set(killSwitch.toString(), true);
                    }
                }
            }
            catch (error) {
                // If an exception is thrown, we'll log the error
                console.log("Error parsing killSwitches query string parameter: " + error);
            }
        }
    };
    /**
     * Returns true if the switch is activated.
     * @param killSwitchGuid - identifier for the kill switch
     * @param date - This parameter does not impact return value of the function.  It
     *        documents the date when the kill switch was introduced, to facilitate bulk cleanup.
     *        The date should be updated if additional fixes are made inside the block.
     * @param featureName - This parameter does not impact return value of the function.
     *        It is an informational tag to facilitate bulk cleanup, e.g. by allowing teams
     *        to search for switches related to their feature.
     * @returns true if the switch is activated, i.e. we should revert to the old behavior
     */
    SPKillSwitch.isActivated = function (killSwitchGuid, date, featureName) {
        if (!this._isInitialized && !false) {
            throw new Error("Killswitches are not initialized. Killswitch requested: " + killSwitchGuid);
        }
        if (!killSwitchGuid) {
            return false;
        }
        return !!this._activatedKillSwitches.get(killSwitchGuid.toString());
    };
    SPKillSwitch._isInitialized = false;
    SPKillSwitch._activatedKillSwitches = new Map();
    return SPKillSwitch;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPKillSwitch);


/***/ }),

/***/ "480N":
/*!******************************************!*\
  !*** ./lib/SPCoreLibraryStrings.resx.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_gIErrcTokcw+/VVwa+ReIA';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "4Ndb":
/*!************************!*\
  !*** ./lib/Version.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Text */ "OFYJ");
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");



/**
 * Represents a version number with two, three, or four parts.
 *
 * @remarks
 * This class represents versions that follow the string format of `MAJOR.MINOR[.PATCH[.REVISION]]`
 * where the MAJOR, MINOR, PATCH and REVISION parts are integers. PATCH and REVISION are optional.
 * Leading zero digits are allowed, but they are discarded.  Missing parts are treated
 * as zeroes for comparisons.
 *
 * Examples: `1.0`, `1.0.0`, `1.0.0.0`, `1.01`, `01.02.03`, `001.002.003.004`
 *
 * @public
 */
var Version = /** @class */ (function () {
    /**
     * WARNING: Use Version.tryParse instead of the constructor. The constructor does not do any validation.
     *
     * @param major - the major version
     * @param minor - the minor version
     * @param patch - the patch number
     * @param revision - the revision number
     */
    function Version(major, minor, patch, revision) {
        this._major = major;
        this._minor = minor;
        this._patch = patch;
        this._revision = revision;
    }
    /**
     * Test whether a string is a valid version specifier.
     *
     * @param versionString - The version string
     * @returns true if the versionString is a valid version specifier
     */
    Version.isValid = function (versionString) {
        return Version.tryParse(versionString) !== undefined;
    };
    /**
     * Constructs a new Version instance using the version string.  An exception is thrown
     * if the string cannot be parsed.
     *
     * @param versionString - A version string
     * @returns a new Version object
     */
    Version.parse = function (versionString) {
        var version = Version.tryParse(versionString);
        if (version) {
            return version;
        }
        throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].invalidVersionStringError, versionString));
    };
    /**
     * Attempts to parse the input string to construct a new Version object.
     * If the string cannot be parsed, then undefined is returned.
     *
     * @param versionString - A version string
     * @returns The Version object, or undefined if the string could not be parsed.
     */
    Version.tryParse = function (versionString) {
        if (versionString) {
            var versionRegex = /^([0-9]+)\.([0-9]+)(?:\.([0-9]+)(?:\.([0-9]+))?)?$/g;
            /* tslint:disable-next-line:no-null-keyword */
            var regexExecRes = versionRegex.exec(versionString);
            if (regexExecRes) {
                return new Version(parseInt(regexExecRes[1], 10), parseInt(regexExecRes[2], 10), regexExecRes[3] !== undefined ? parseInt(regexExecRes[3], 10) : undefined, regexExecRes[4] !== undefined ? parseInt(regexExecRes[4], 10) : undefined);
            }
        }
        return undefined;
    };
    /**
     * Compares two Version objects to determine which version is newer.
     *
     * @param v1 - The first version class for comparison
     * @param v2 - The second version class for comparison
     * @returns  -1 if the first input is less than the second input;
     *            0 if the first input is equal to the second input;
     *            1 if the first input is greater than the second input.
     */
    Version.compare = function (v1, v2) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(v1, 'v1');
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(v2, 'v2');
        if (v1.major !== v2.major) {
            return v1.major > v2.major ? 1 : -1;
        }
        if (v1.minor !== v2.minor) {
            return v1.minor > v2.minor ? 1 : -1;
        }
        if ((v1.patch || 0) !== (v2.patch || 0)) {
            return (v1.patch || 0) > (v2.patch || 0) ? 1 : -1;
        }
        if ((v1.revision || 0) !== (v2.revision || 0)) {
            return (v1.revision || 0) > (v2.revision || 0) ? 1 : -1;
        }
        return 0;
    };
    /**
     * Get the version from given manifest.
     * @param manifest - The manifest where to get version.
     * @returns - The version of the manifest or undefined if version cannot be obtained.
     * @internal
     */
    Version._tryParseSPFxVersion = function (manifest) {
        try {
            // tslint:disable-next-line:no-any
            var resource = manifest.loaderConfig.scriptResources['@microsoft/sp-core-library'];
            return Version.parse(resource.version);
        }
        catch (err) {
            return undefined;
        }
    };
    Object.defineProperty(Version.prototype, "major", {
        /**
         * Returns the first component of the version string.
         *
         * @remarks
         * Typically a change in the major version number indicates a compatibility
         * break with previous versions.
         */
        get: function () {
            return this._major;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Version.prototype, "minor", {
        /**
         * Returns the second component of the version string.
         *
         * @remarks
         * Typically a change in the minor version number indicates that new features
         * were added, while remaining backwards compatible with previous releases.
         */
        get: function () {
            return this._minor;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Version.prototype, "patch", {
        /**
         * The third number in the version string, or undefined if unspecified.
         *
         * @remarks
         * Typically a change in the patch version number indicates a small fix that
         * does not affect the compatibility contract for the library.  For a .NET
         * System.Version object, this is referred to as the "build" number.
         */
        get: function () {
            return this._patch;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Version.prototype, "revision", {
        /**
         * The fourth number in the version string, or undefined if unspecified.
         *
         * @remarks
         * This number is not part of the Semantic Versioning (SemVer) standard used
         * in JavaScript, but it is used by .NET version numbers.
         */
        get: function () {
            return this._revision;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Tests whether this version is less than (i.e. older than) the input parameter.
     *
     * @remarks
     *
     * Examples:
     *
     * ```
     * 0.9.9 lessThan 1.0.0 -> true;
     * 2.0   lessThan 2.0.0 -> false;
     * 3.0   lessThan 3.0.1 -> true;
     * 04.01 lessThan 4.1   -> false
     * ```
     *
     * @param compareWith - The version to compare with
     * @returns A boolean indicating if this version is less than the input parameter
     */
    Version.prototype.lessThan = function (compareWith) {
        return Version.compare(this, compareWith) < 0;
    };
    /**
     * Tests whether this version is greater than (i.e. newer than) the input parameter.
     *
     * @remarks
     *
     * Examples:
     *
     * ```
     * 1.0.0 greaterThan 0.0.9 -> true;
     * 2.0   greaterThan 2.0.0 -> false;
     * 3.0.1 greaterThan 3.0   -> true
     * ```
     *
     * @param compareWith - The version to compare with
     * @returns A boolean indicating if this version is greater than the input parameter
     */
    Version.prototype.greaterThan = function (compareWith) {
        return Version.compare(this, compareWith) > 0;
    };
    /**
     * Tests whether this version is equal to the input parameter.
     *
     * @remarks
     *
     * Examples:
     *
     * ```
     * 1.0.0 equals 1.0.0 -> true;
     * 2.0.1 equals 2.0.0 -> false;
     * 3.0   equals 3.0.0 -> true;
     * 04.01 equals 4.1   -> true
     * ```
     *
     * @param compareWith - The version to compare with
     * @returns A boolean indicating if this version is equal to the input parameter
     */
    Version.prototype.equals = function (compareWith) {
        return Version.compare(this, compareWith) === 0;
    };
    /**
     * Tests whether this version satisfies the compatibility requirements of the input version,
     * i.e. is backwards compatible.
     *
     * @remarks
     * In order to satisfy the compatibility requirements, this object must have the same
     * major version number as the input parameter, and it must NOT be older than the
     * input parameter.
     *
     * Examples:
     *
     * ```
     * 1.0.0 satisfies 1.0.0 -> true;
     * 1.1.0 satisfies 1.0.0 -> true;
     * 2.0.0 satisfies 1.0.0 -> false;
     * 1.0.0 satisfies 1.1.0 -> false
     * ```
     *
     * @param compareWith - The version to compare with
     * @returns A boolean indicating if this version is compatible with the input parameter
     */
    Version.prototype.satisfies = function (compareWith) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(compareWith, 'compareWith');
        return this.major === compareWith.major && !this.lessThan(compareWith);
    };
    /**
     * Returns a string representation of the version.
     *
     * @remarks
     * The value is normalized and may be different from the original string (e.g. leading zeroes
     * may be removed).  However, the number of version parts will be unchanged.
     */
    Version.prototype.toString = function () {
        var str = this.major + "." + this.minor;
        if (this.patch !== undefined) {
            str += "." + this.patch;
            if (this.revision !== undefined) {
                str += "." + this.revision;
            }
        }
        return str;
    };
    return Version;
}());
/* harmony default export */ __webpack_exports__["default"] = (Version);


/***/ }),

/***/ "5cYQ":
/*!************************************************!*\
  !*** ./lib/url/UrlQueryParameterCollection.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */
/**
 * Provides features for storing and retrieving URL query parameters.
 *
 * @remarks
 * The URL can be server-relative, and it can also be an empty or null string.
 * The query parameters must start with "?" to indicate the first query parameter and
 * use "&" for all subsequent parameters. The class also supports fragments.
 *
 * Edge case behavior:
 *
 * Empty value (www.example.com/?test=) stores key and empty value
 * No equals in queryParam (www.example.com/?test) stores key and undefined value
 * Empty queryParam (www.example.com/?&debug=on) stores undefined key and value
 * Query param with only equals (www.example.com/?=&debug=on stores empty string key and value
 *
 * @privateRemarks
 * The design of this class was that it could split the URL out into a data structure, and the user
 * could add items to the data structure (TBD), and then another (TBD) function would rebuild the URL.
 * This weird design would ensure that e.g. if no change was made to the data structure, then the
 * round trip wouldn't change the characters in the URL at all, which might be useful e.g. if we're
 * comparing URLs.
 *
 * @deprecated Use the URLSearchParams browser API instead.  The SharePoint Framework includes a
 * polyfill for older browsers.
 * @public
 */
var UrlQueryParameterCollection = /** @class */ (function () {
    function UrlQueryParameterCollection(url) {
        this._queryParameterList = this._getUrlQueryParameterArray(url);
    }
    /**
     * Returns the value of the first matching query parameter or undefined if the key doesn't exist.
     *
     * @remarks
     * Examples:
     * ```
     * this._queryParameterList = [
     * {key: TEST, value: done},
     * {key: DEBUG, value: false},
     * {key: TEST, value: notdone}]
     *   getValue('TEST') ---> 'done'
     *   getValue('debug')  ---> 'false'
     *   getValue('lost')  ---> undefined
     * ```
     * @param param - the case insensitive key for the desired query parameter value.
     */
    UrlQueryParameterCollection.prototype.getValue = function (param) {
        for (var _i = 0, _a = this._queryParameterList; _i < _a.length; _i++) {
            var queryParam = _a[_i];
            if (param === undefined) {
                if (queryParam.key === undefined) {
                    return queryParam.value;
                }
                continue;
            }
            else if (param.toUpperCase() === queryParam.key) {
                return queryParam.value;
            }
        }
        return undefined;
    };
    /**
     * Returns the values of all of the matching query parameters or undefined if the key doesn't exist.
     *
     * @remarks
     * Examples:
     * ```
     * this._queryParameterList = [
     * {key: TEST, value: done},
     * {key: DEBUG, value: false},
     * {key: TEST, value: notdone}]
     *   getValues('TEST') ---> ['done', 'notdone']
     *   getValues('debug')  ---> ['false']
     *   getValues('lost')  ---> undefined
     * ```
     * @param param - the case insensitive key for the desired query parameter value.
     */
    UrlQueryParameterCollection.prototype.getValues = function (param) {
        var queryParams = [];
        for (var _i = 0, _a = this._queryParameterList; _i < _a.length; _i++) {
            var queryParam = _a[_i];
            if (param === undefined) {
                if (queryParam.key === undefined) {
                    queryParams.push(queryParam.value);
                }
                continue;
            }
            else if (param.toUpperCase() === queryParam.key) {
                queryParams.push(queryParam.value);
            }
        }
        return queryParams.length > 0 ? queryParams : undefined;
    };
    UrlQueryParameterCollection.prototype._getUrlQueryParameterArray = function (url) {
        var queryParameterList = [];
        var urlParser = document.createElement('a');
        urlParser.href = url;
        var queryParams = urlParser.search.substring(1).split('&');
        for (var _i = 0, queryParams_1 = queryParams; _i < queryParams_1.length; _i++) {
            var queryParam = queryParams_1[_i];
            if (queryParam !== '') {
                var equalsIndex = queryParam.indexOf('=');
                var key = void 0;
                var value = void 0;
                if (equalsIndex < 0) {
                    key = queryParam;
                    value = undefined;
                }
                else if (equalsIndex === 0) {
                    key = '';
                    value = queryParam.length === 1 ? '' : queryParam.substring(1);
                }
                else {
                    key = queryParam.substring(0, equalsIndex);
                    value =
                        queryParam.substring(equalsIndex).length === 1 ?
                            '' :
                            queryParam.substring(equalsIndex + 1);
                }
                queryParameterList.push({
                    key: decodeURIComponent(key.toUpperCase()),
                    value: value
                });
            }
            else {
                queryParameterList.push({
                    key: undefined,
                    value: undefined
                });
            }
        }
        return queryParameterList;
    };
    return UrlQueryParameterCollection;
}());
/* harmony default export */ __webpack_exports__["default"] = (UrlQueryParameterCollection);


/***/ }),

/***/ "6T9R":
/*!*******************************!*\
  !*** ./lib/events/SPEvent.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Validate */ "wAtz");
/* harmony import */ var _SPEventManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPEventManager */ "kYSd");


/**
 * Represents a framework event that components can subscribe to.
 *
 * @remarks
 * Examples of events in a web application might include: the user clicking a button, the system navigating to
 * another page, or an item being added/removed from an abstract collection.  The SharePoint Framework
 * represents events using instances of the SPEvent object, one for each kind of event.  The SPEvent object
 * is typically exposed as a property of an associated class (e.g. the button that can be clicked).
 * When a component is interested in an event, it calls add() to register an event handler callback that
 * will be invoked each time the event occurs.  The handler receives an SPEventArgs parameter that may
 * provide additional details about what happened.  This is analogous to the browser's Document Object Model
 * (DOM) events.  The main difference is the ISPEventObserver feature, which tracks which component subscribed
 * to each event, and automatically unsubscribes the handler when the component is disposed.
 *
 * When an event is raised, all handlers are invoked synchronously.  The order in which event handlers
 * are called is unspecified.  The event handler callback must catch any exceptions that occur during
 * processing; an uncaught exception will not prevent other handlers from executing, but it will be
 * reported as a problem with the associated component.
 *
 * @public
 */
var SPEvent = /** @class */ (function () {
    /**
     * @internal
     */
    function SPEvent(name) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(name, 'name');
        this._name = name;
    }
    /**
     * Registers a callback that will be invoked whenever the event occurs.
     *
     * @remarks
     * The same object can add multiple event handlers to the same event. Since BaseComponent implements
     * the ISPEventObserver interface, a web part or extension can pass itself as the observer. This will cause
     * the event handler to be automatically unsubscribed when the web part or extension is disposed.
     *
     * @param observer - Indicates the object that is subscribing to the event: When the object is disposed,
     *   the event handler will be automatically removed.  This object is also used for diagnostic purposes,
     *   e.g. detecting if the event handler failed to catch an exception.
     * @param eventHandler - A callback function that will be invoked whenever the event occurs
     */
    SPEvent.prototype.add = function (observer, eventHandler) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(observer, 'component');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventHandler, 'eventHandler');
        _SPEventManager__WEBPACK_IMPORTED_MODULE_1__["default"].instance.registerEvent(this._name, observer, eventHandler);
    };
    /**
     * Unregisters a callback that was registered using add().
     *
     * @remarks
     * If the event handler has already been removed, or if it was never added, then this
     * method has no effect.
     *
     * @param observer - This must be the same observer that was passed to the add() function.
     * @param eventHandler - The event handler to remove; this must be the same object instance
     *   that was passed to the add() function.
     */
    SPEvent.prototype.remove = function (observer, eventHandler) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(observer, 'component');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventHandler, 'eventHandler');
        _SPEventManager__WEBPACK_IMPORTED_MODULE_1__["default"].instance.unregisterEvent(this._name, observer, eventHandler);
    };
    /**
     * Returns the number of listeners to the event
     * @internal
     */
    SPEvent.prototype._listenerCount = function () {
        return _SPEventManager__WEBPACK_IMPORTED_MODULE_1__["default"].instance._listenerCount(this._name);
    };
    return SPEvent;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPEvent);


/***/ }),

/***/ "BHcV":
/*!***********************************!*\
  !*** ./lib/events/SPEventArgs.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * The base class for event arguments used with the {@link SPEvent} class.
 *
 * @remarks
 * If certain event types need to provide additional details, they will define a
 * subclass of SPEventArgs.
 *
 * @public
 */
var SPEventArgs = /** @class */ (function () {
    function SPEventArgs() {
    }
    return SPEventArgs;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPEventArgs);


/***/ }),

/***/ "Btg7":
/*!*********************************!*\
  !*** ./lib/url/UrlUtilities.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Validate */ "wAtz");
// Copyright (c) Microsoft. All rights reserved.


var URL_PROTOCOL_REGEX = /^\w+\:\/\//;
// data:[<mediatype>][;base64],<data>
var BASE64_IMAGE_REGEX = /^data:(\w+\/\w+(\+\w+)?)?(;charset=[\w-]+)?(;base64)?,.*/i;
/**
 * Common helper functions for working with URLs.  These utilities are intended to be simple,
 * small, and very broadly applicable.
 *
 * @alpha
 */
var UrlUtilities = /** @class */ (function () {
    function UrlUtilities() {
    }
    /**
     * If the provided URL is relative, resolve it under the provided base URL. If the provided URL is absolute,
     * return it.
     *
     * @remarks
     * Examples:
     * ```
     *   resolve('/foo/bar.js', 'http://cdn.com/path/')               ---> 'http://cdn.com/path/foo/bar.js'
     *   resolve('http://cdn.com/foo/bar.js', 'http://cdn.com/path/') ---> 'http://cdn.com/foo/bar.js'
     *   resolve('/foo/bar.js', 'path/')                              ---> 'path/foo/bar.js'
     * ```
     * @param url - the URL to be resolved
     * @param baseUrl - the base URL to use if the URL is relative
     */
    UrlUtilities.resolve = function (url, baseUrl) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNonemptyString(url, 'url');
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNonemptyString(baseUrl, 'baseUrl');
        // If the icon URL doesn't start with a protocol handler (i.e. - "http://") assume it's a relative URL and
        //  append it to the loaderConfig's internalModuleBaseUrl
        var isRelativeUrl = UrlUtilities.isRelativeUrl(url);
        if (isRelativeUrl) {
            return UrlUtilities.removeEndSlash(baseUrl) + "/" + UrlUtilities.removeLeadingSlash(url);
        }
        else {
            return url;
        }
    };
    /**
     * Removes any slash characters from the end of the URL.
     *
     * @remarks
     * This function assumes that the input is already a valid absolute or server-relative URL.
     *
     * Examples:
     * ```
     *   removeEndSlash('http://example.com/') ---> 'http://example.com'
     *   removeEndSlash('/example')            ---> '/example'
     *   removeEndSlash('/')                   ---> ''
     * ```
     * @param url - the URL to be normalized
     */
    UrlUtilities.removeEndSlash = function (url) {
        return _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["trimEnd"](url, '/');
    };
    /**
     * Removes any slash characters from the beginning of the URL.
     *
     * @remarks
     * This function assumes that the input is already a valid absolute or server-relative URL.
     *
     * Examples:
     * ```
     *   removeLeadingSlash('/example/path.js') ---> 'example/path.js'
     *   removeLeadingSlash('example/')         ---> 'example/'
     *   removeLeadingSlash('/')                ---> ''
     * ```
     * @param url - the URL to be normalized
     */
    UrlUtilities.removeLeadingSlash = function (url) {
        return _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["trimStart"](url, '/');
    };
    /**
     * Converts a variable to an OData string literal suitable for usage in a REST URL.
     *
     * @remarks
     * The returned string will be enclosed in single quotes, and any single quotes
     * will be escaped.
     *
     * Example usage:
     *
     * ```
     * const url = "/_api/web/GetFolderByServerRelativeUrl("
     *       + UrlUtilities.convertToODataStringLiteral("/SitePages/Alice's%20Page")
     *       + ")/Files";
     *
     *  // Produces this URL:
     *  // "/_api/web/GetFolderByServerRelativeUrl('/SitePages/Alice''s%20Page')/Files"
     * ```
     *
     * @privateRemarks
     * Standard reference:
     * https://tools.oasis-open.org/version-control/
     *   browse/wsvn/odata/trunk/spec/ABNF/odata-abnf-construction-rules.txt
     * SQUOTE-in-string = SQUOTE SQUOTE ; two consecutive single quotes represent
     *   one within a string literal
     */
    UrlUtilities.convertToODataStringLiteral = function (value) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(value, 'value');
        value = value.replace(/'/g, "''");
        value = "'" + value + "'";
        return value;
    };
    /**
     * Detects if a string represents a correctly formatted data URL.
     *
     * @remarks
     *
     * Examples:
     * ```
     *   isDataUrl('data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D') ---> true
     *   isDataUrl('data:,Hello%2C%20World!')                         ---> true
     *   isDataUrl('data:image/png;base64,iVBORw0KGgoAA')             ---> true
     *   isDataUrl('http://contoso.com')                              ---> false
     *   isDataUrl('/foo/bar')                                        ---> false
     * ```
     *
     * Information on data URLs can be found at https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
     */
    UrlUtilities.isDataUrl = function (url) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(url, 'url');
        return !!url.match(BASE64_IMAGE_REGEX);
    };
    /**
     * Detects if a url is relative
     *
     * @remarks
     * This function assumes that the input is already a valid absolute or server-relative URL.
     *
     * Examples:
     * ```
     *   isRelativeUrl('/example/path.aspx')  ---> true
     *   isRelativeUrl('http://contoso.com')  ---> false
     * ```
     */
    UrlUtilities.isRelativeUrl = function (url) {
        return !url.match(URL_PROTOCOL_REGEX);
    };
    return UrlUtilities;
}());
/* harmony default export */ __webpack_exports__["default"] = (UrlUtilities);


/***/ }),

/***/ "DXUK":
/*!****************************!*\
  !*** ./lib/envoy/Envoy.js ***!
  \****************************/
/*! exports provided: Envoy */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Envoy", function() { return Envoy; });
/**
 * Envoy is a ProxyHandler implementation designed to proxy an object
 * and all its subproperties. Envoy automatically creates new Proxies
 * when it encounters un-proxied objects in the root object hierarchy.
 *
 * @internal
 */
var Envoy = /** @class */ (function () {
    /**
     * @virtual
     */
    function Envoy() {
    }
    /**
     * Create the root Proxy object.
     *
     * @param args - Optional. Any additional arguments.
     *
     * @returns A new object Proxy.
     *
     * @virtual Override if the constructor is also overridden.
     */
    Envoy.create = function (obj) {
        // Construct a new instance of the child class
        /* tslint:disable-next-line:no-any */
        return new Proxy(obj, new this());
    };
    /**
     * Check whether a value is an object.
     *
     * @param obj - Value to test.
     *
     * @returns A boolean indicating whether obj is an object.
     */
    Envoy._isObject = function (obj) {
        return obj && typeof obj === 'object';
    };
    /**
     * ProxyHandler.get implementation.
     *
     * @param obj - Proxied object.
     * @param prop - The name of the property to get.
     *
     * @returns The value of `prop` on `obj`.
     *
     * @remarks Returns true if prop is `__isProxy__`.
     */
    Envoy.prototype.get = function (obj, prop) {
        // Identify the current object is a proxy
        if (prop === '__isProxy__') {
            return true;
        }
        var retVal = obj[prop];
        if (Envoy._isObject(retVal)) {
            if (!retVal.__isProxy__) {
                retVal = obj[prop] = this.onNewEnvoy(prop, retVal);
            }
        }
        return this.onGetValue(prop, retVal);
    };
    /**
     * ProxyHandler.set implementation.
     *
     * @param obj - Proxied object.
     * @param prop - Property name.
     * @param val - Value to set.
     *
     * @returns A value indicating whether the property was set.
     */
    Envoy.prototype.set = function (obj, prop, val) {
        if (Envoy._isObject(val)) {
            var oldVal = obj[prop];
            // It's possible `oldVal` is not an object but `val` is an object if
            // the value of `prop` is loosely typed
            if (Envoy._isObject(oldVal) && oldVal.__isProxy__) {
                obj[prop] = this.onBeforeSetValue(prop, val);
            }
            else {
                obj[prop] = this.onNewEnvoy(prop, this.onBeforeSetValue(prop, val));
            }
        }
        else {
            obj[prop] = this.onBeforeSetValue(prop, val);
        }
        this.onSetValue(prop, obj[prop]);
        return true;
    };
    /**
     * Invoked when retrieving any value from the proxied
     * object.
     *
     * @param prop - Property name.
     * @param val - Property value.
     *
     * @returns The value to return from the proxy.
     *
     * @remarks onGetValue is not called when checking the
     * `__isProxy__` property.
     *
     * @virtual
     */
    Envoy.prototype.onGetValue = function (prop, val) {
        return val;
    };
    /**
     * Invoked when a new Envoy Proxy needs to be created.
     *
     * @param val - Object to proxy.
     * @param prop - Property name for val on the parent object.
     *
     * @returns A new proxied object.
     *
     * @virtual Override if the constructor is also overridden.
     */
    Envoy.prototype.onNewEnvoy = function (prop, val) {
        // Constructing a new instance of the child class
        /* tslint:disable-next-line: no-any */
        return new Proxy(val, new this.constructor());
    };
    /**
     * Invoked before setting any value on the proxied
     * object.
     *
     * @param prop - Property name.
     * @param val - Property value.
     *
     * @returns The value to set on the proxy.
     *
     * @virtual
     */
    Envoy.prototype.onBeforeSetValue = function (prop, val) {
        return val;
    };
    /**
     * Invoked after a property is set on the proxied object.
     *
     * @param prop - Property name.
     * @param val - Property value.
     *
     * @virtual
     */
    Envoy.prototype.onSetValue = function (prop, val) {
        // default implementation is a no-op
    };
    return Envoy;
}());



/***/ }),

/***/ "FtfD":
/*!****************************!*\
  !*** ./lib/DisplayMode.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// Copyright (c) Microsoft. All rights reserved.
/**
 * Indicates whether a visual control should display itself for reading or for editing.
 *
 * @public
 */
var DisplayMode;
(function (DisplayMode) {
    /**
     * The page, control, or editing surface is in a mode intended for reading.  It may have some interactive
     * features, but the authoring controls are not enabled.
     */
    DisplayMode[DisplayMode["Read"] = 1] = "Read";
    /**
     * The page, control, or editing surface is in a mode intended for authoring new content.  It may display
     * editing panels or other controls that are not part of the normal reading experience.
     */
    DisplayMode[DisplayMode["Edit"] = 2] = "Edit";
})(DisplayMode || (DisplayMode = {}));
/* harmony default export */ __webpack_exports__["default"] = (DisplayMode);


/***/ }),

/***/ "JJKV":
/*!*************************!*\
  !*** ./lib/SPFlight.js ***!
  \*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */
// This character is allowed to go unencoded in a URL and commonly represents "NOT" logic in boolean algebra
// Reference: http://www.faqs.org/rfcs/rfc1738.html
var DISABLED_FLIGHT_PREFIX = '!';
// Debug flight id. This flight is only enabled for internal Microsoft tenants like the eDog tenant. This flight
// is used for debug level testing and should not be enabled for PROD customer tenants due security reasons.
// Enabling this flight on PROD customer tenants can deem them vulnerable to script injection.
var SPFX_DEBUG_FLIGHT_ID = 205;
/**
 * NOT FOR USE BY THIRD PARTY DEVELOPERS
 *
 * This class supports Microsoft's internal deployment workflow.
 * For more information, see https://microsoft.sharepoint.com/teams/odsp/_layouts/OneNote.aspx
 * ?id=/teams/odsp/Shared%20Documents/MI-6%20Team/MI-6%20Team/Global/SPO%20Flighting
 *
 * @privateRemarks
 * SPFlight is currently being reexported by sp-client-base.  For GA, this will be sorted out by
 * VSO 278235 which will move this class back into sp-client-base (sp-core-library).
 *
 * @internal
 */
var SPFlight = /** @class */ (function () {
    function SPFlight() {
    }
    /**
     * RESERVED FOR INTERNAL USAGE.  This method is invoked automatically by the system shell.
     * The application code should not call it directly.
     */
    SPFlight.initialize = function (flights) {
        this._isInitialized = true;
        this._enabledFlightsMap = flights || [];
        this._forceEnabledFlights = [];
        this._forceDisabledFlights = [];
    };
    Object.defineProperty(SPFlight, "isDebugFlightEnabled", {
        /**
         * Return true if the debug flight is enabled.
         */
        get: function () {
            return SPFlight.isEnabled(SPFX_DEBUG_FLIGHT_ID);
        },
        enumerable: true,
        configurable: true
    });
    /**
     * RESERVED FOR INTERNAL USAGE.  This method is invoked automatically by the system shell.
     * The application code should not call it directly.
     */
    SPFlight.setDebugFlights = function (debugFlights) {
        if (!this._isInitialized) {
            throw new Error('Flights are not initialized. Can\'t set debug flights.');
        }
        // If allowQueryFlights then parse the 'debugFlights' query string parameter for any flights to enable for
        // the session. 'debugFlights' is expected to be a comma separated list. We store the flights as given
        // to avoid needing to do any bitmask conversions during translation and just check the
        // feature ID directly.
        if (debugFlights && debugFlights.length > 0) {
            try {
                var debugFlightStrings = debugFlights.split(',');
                this._forceEnabledFlights = debugFlightStrings
                    .filter(function (value) { return value[0] !== DISABLED_FLIGHT_PREFIX; })
                    .map(function (value) { return parseInt(value, 10); })
                    .filter(function (value) { return !isNaN(value); });
                this._forceDisabledFlights = debugFlightStrings
                    .filter(function (value) { return value[0] === DISABLED_FLIGHT_PREFIX; })
                    .map(function (value) { return parseInt(value.slice(1), 10); })
                    .filter(function (value) { return !isNaN(value); });
                console.log("Debug flights are enabled.");
                if (this._forceEnabledFlights.length > 0) {
                    console.log("Enabled flights: " + this._forceEnabledFlights.join(', '));
                }
                if (this._forceDisabledFlights.length > 0) {
                    console.log("Disabled flights: " + this._forceDisabledFlights.join(', '));
                }
            }
            catch (error) {
                // If an exception is thrown, we'll log the error and clear debug flights
                this._forceEnabledFlights = [];
                this._forceDisabledFlights = [];
                console.log("Error parsing debugFlights query string parameter: " + error);
            }
        }
        this._validateDebugFlights();
    };
    /**
     * NOT FOR USE BY THIRD PARTY DEVELOPERS
     *
     * This function will determine if a flight is enabled in the global list.
     */
    SPFlight.isEnabled = function (flight) {
        if (!this._isInitialized && !false) {
            throw new Error("Flights are not initialized. Flight requested: " + flight);
        }
        if (!flight || flight < 0) {
            return false;
        }
        // Debug flights override existing flight information
        if (this._forceEnabledFlights.indexOf(flight) !== -1) {
            return true;
        }
        if (this._forceDisabledFlights.indexOf(flight) !== -1) {
            return false;
        }
        // Determines which set of bitMasks should be used to determine if a flight is enabled.
        /* tslint:disable:no-bitwise */
        var enabledFlightsIndex = flight >> 5;
        if (enabledFlightsIndex < 0 || enabledFlightsIndex >= this._enabledFlightsMap.length) {
            return false;
        }
        // Masks the flight number and determines if the flight is turned on within that mask.
        var bitMask = 1 << (flight & 31);
        return (this._enabledFlightsMap[enabledFlightsIndex] & bitMask) !== 0;
        /* tslint:enable:no-bitwise */
    };
    SPFlight._validateDebugFlights = function () {
        var debugFlightsSet = new Set(this._forceEnabledFlights.concat(this._forceDisabledFlights));
        // If size is smaller than the sum of its parts, it means that there is a duplicate number in both arrays
        if (debugFlightsSet.size < (this._forceEnabledFlights.length + this._forceDisabledFlights.length)) {
            throw new Error('There are flights that are forced to be both enabled and disabled');
        }
    };
    SPFlight._isInitialized = false;
    /**
     * List of SharePoint flight feature IDs that are forced to be enabled
     * through the debugFlights query string parameter.
     */
    SPFlight._forceEnabledFlights = [];
    /**
     * List of SharePoint flight feature IDs that are forced to be disabled
     * through the debugFlights query string parameter.
     */
    SPFlight._forceDisabledFlights = [];
    /**
     * Array of bits (indexed by flight number, where 1 means that flight is enabled).
     */
    SPFlight._enabledFlightsMap = [];
    return SPFlight;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPFlight);


/***/ }),

/***/ "KfQ9":
/*!********************************************!*\
  !*** ./lib/deferredClass/DeferredClass.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Abstract class for deferred class code.
 */
/**
 * `DeferredClass` is a generic class to define the pattern of code loaded after the initial code download.
 *
 * @remarks
 * Example:
 * ```
 * class DeferredFoo extends DeferredClass<typeof Foo, Foo> {
 *
 *   // Static members do not inherit the generic types so we do this to correctly enforce the right typing.
 *   public static instance() DeferredFoo {
 *     return this._instance;
 *   }
 *
 *   public create(arg1: string, arg2: number): Foo {
 *     return new this._classType(arg1, arg2);
 *   }
 *
 *   protected _internalLoad(): Promise<Type> {
 *     // code to lazy load e.g. require.ensure(...)
 *     // or import(...)
 *     // or SPComponentLoader.loadComponentById(...).then(
 *     // (module: typeof DeferredFooModuleType) => { return module.DeferredFoo; });
 *   }
 * }
 * ```
 *
 * @param Type - The type of the Instance object. This type should define how you create an instance
 *   of the deferred class.
 * @param Instance - The interface of the deferred class.
 *
 * @internal
 */
var DeferredClass = /** @class */ (function () {
    /**
     * Singleton instance.
     */
    function DeferredClass() {
        var _this = this;
        this._onAfterLoadPromise = new Promise(function (resolve) { return _this._resolveOnAfterLoadCallbacks = resolve; });
    }
    /**
     * Initialize, if needed, the _internalInstance singleton.
     *
     * @returns - The singleton instance.
     */
    // tslint:disable-next-line:no-any
    DeferredClass._getInstance = function () {
        if (!this._internalInstance) {
            // Cast this to any in order to call the constructor for the derived class
            // tslint:disable-next-line:no-any
            this._internalInstance = new this();
        }
        return this._internalInstance;
    };
    Object.defineProperty(DeferredClass.prototype, "isLoaded", {
        /**
         * @returns Whether or not the code has been loaded.
         */
        get: function () {
            return !!this._classType;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DeferredClass.prototype, "shouldLoad", {
        /**
         * @returns Whether or not the code should load. Value should not change during the lifecycle of an instance.
         */
        get: function () {
            return true;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Loads the deferred chunk. After the returned promise is resolved, DeferredClass.create can be used
     * to create an instance of the deferred class.
     *
     * @returns - The Promise used for loading the code. If DeferredClass.shouldLoad has been overriden
     *   and returns false, then a rejected Promise is returned.
     */
    DeferredClass.prototype.load = function () {
        var _this = this;
        if (!this._loadPromise) {
            // shouldLoad is not expected to change during the lifecycle of this instance
            if (this.shouldLoad) {
                this._loadPromise = this._internalLoad();
                // tslint:disable-next-line:no-floating-promises - This promise isn't floating
                this._loadPromise.then(function (type) {
                    _this._classType = type;
                    _this._resolveOnAfterLoadCallbacks();
                });
            }
            else {
                this._loadPromise = Promise.reject(new Error('shouldLoad returns false'));
            }
        }
        return this._loadPromise;
    };
    /**
     * Returns a thenable Promise to be resolved after the code has finished loading. Use this for cases where
     * you do not want to invoke code loading but want to be notified when the code has loaded.
     *
     * @returns - A promise resolved after the code loads.
     */
    DeferredClass.prototype.onAfterLoad = function () {
        return this._onAfterLoadPromise;
    };
    return DeferredClass;
}());
/* harmony default export */ __webpack_exports__["default"] = (DeferredClass);


/***/ }),

/***/ "LcA1":
/*!**************************************!*\
  !*** ./lib/log/DefaultLogHandler.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Text */ "OFYJ");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../SPCoreLibraryStrings.resx */ "480N");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */


/**
 * The redirectable implementation for the Log class.
 */
// @TODO: VSO 285419 will clean this up.
var DefaultLogHandler = /** @class */ (function () {
    function DefaultLogHandler() {
    }
    /* tslint:disable:no-console */
    DefaultLogHandler.prototype.verbose = function (source, message, scope) {
        if (true) {
            console.log(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].logVerboseLevelMessage, source, message));
        }
    };
    DefaultLogHandler.prototype.info = function (source, message, scope) {
        if (true) {
            console.info(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].logInfoLevelMessage, source, message));
        }
    };
    DefaultLogHandler.prototype.warn = function (source, message, scope) {
        if (true) {
            console.warn(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].logWarningLevelMessage, source, message));
        }
    };
    DefaultLogHandler.prototype.error = function (source, error, scope) {
        if (true) {
            console.error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].logErrorLevelMessage, source, error.message));
        }
    };
    return DefaultLogHandler;
}());
/* harmony default export */ __webpack_exports__["default"] = (DefaultLogHandler);


/***/ }),

/***/ "OFYJ":
/*!*********************!*\
  !*** ./lib/Text.js ***!
  \*********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");

/**
 * Operations for working with strings that contain text.
 *
 * @remarks
 * The utilities provided by this class are intended to be simple, small, and very
 * broadly applicable.
 *
 * @public
 */
var Text = /** @class */ (function () {
    function Text() {
    }
    /**
     * Format a string by substituting parameters.
     *
     * @remarks
     * This function replaces template parameters such as `"{0}"` or `"{1}"` with the
     * corresponding argument.  If the value is null or undefined, it will be replaced
     * by the word `"null"` or `"undefined"`.  The format string s must not be null or
     * undefined.
     *
     * Usage example:
     *
     * `Text.format("hello {0}!", "world")` will return `"hello world!"`
     */
    Text.format = function (s) {
        var values = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            values[_i - 1] = arguments[_i];
        }
        // We can't use  Validate.isNotNullOrUndefined() here because Validate
        // relies on Text.format() for reporting errors and can cause a stack overflow
        if (s === null) { // tslint:disable-line:no-null-keyword
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_0__["default"].isNullValidateError.replace('{0}', 's'));
        }
        if (s === undefined) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefinedValidateError.replace('{0}', 's'));
        }
        return s.replace(Text.FORMAT_REGEX, function (match) {
            // The matchID is the numeric value contained in the brackets. {01} gets converted to 1.
            var matchId = parseInt(match.replace(Text.FORMAT_ARGS_REGEX, ''), 10);
            // The matchValue is the string contained in the values' matchId index.
            // If matchId = 1 and values = ['the', 'bear', 'ate'], then matchValue = 'bear'
            var matchValue = values[matchId];
            // If you index outside of the values array, return the original matchId in brackets
            if (matchId >= values.length || matchId < 0) {
                matchValue = match;
            }
            // Logic to convert null and undefined into readable strings
            /* tslint:disable-next-line:no-null-keyword */
            if (matchValue === null) {
                matchValue = 'null';
            }
            else if (matchValue === undefined) {
                matchValue = 'undefined';
            }
            return matchValue;
        });
    };
    /**
     * Returns the input string, with all instances of `searchValue` replaced by `replaceValue`.
     *
     * @remarks
     * Note that JavaScript's `string.replace()` only replaces the first match, unless a
     * global RegExp is provided.
     *
     * @param input         - The string to be modified
     * @param searchValue   - The value to search for
     * @param replaceValue  - The replacement text
     */
    Text.replaceAll = function (input, searchValue, replaceValue) {
        return input.split(searchValue).join(replaceValue);
    };
    // Regex that finds {#} so it can be replaced by the arguments in string format
    Text.FORMAT_REGEX = /\{\d+\}/g;
    // Regex that finds { and } so they can be removed on a lookup for string format
    Text.FORMAT_ARGS_REGEX = /[\{\}]/g;
    return Text;
}());
/* harmony default export */ __webpack_exports__["default"] = (Text);


/***/ }),

/***/ "PYTr":
/*!*****************************************************!*\
  !*** ./lib/serviceScope/serviceKeys/ServiceKeys.js ***!
  \*****************************************************/
/*! exports provided: ServiceKeys */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServiceKeys", function() { return ServiceKeys; });
/* harmony import */ var _ServiceKey__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ServiceKey */ "XxFD");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */

/**
 * Centralized list of service keys used.
 * Maintaining all the service keys here, would make consumption of services
 * free of any cyclic dependencies.
 *
 * @internal
 */
var ServiceKeys = /** @class */ (function () {
    function ServiceKeys() {
    }
    /**
     * A unique ServiceKey to identify the ParentIframeCommunicator as a service in the ServiceScope.
     *
     * @remarks
     * This is a slightly special case where we can't provide a default implementation because it depends
     * on a context which only exists in the isolated web part scenario. Hence, consuming this service key
     * in non-isolated scenarios will throw the below error.
     */
    ServiceKeys.parentIFrameCommunicatorServiceKey = _ServiceKey__WEBPACK_IMPORTED_MODULE_0__["default"].createCustom('isolated-webpart-application:ParentIframeCommunicator', function () { throw new Error('ParentIframeCommunicator cannot be consumed until it is provided.'); });
    return ServiceKeys;
}());



/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "Qn+G":
/*!*********************************!*\
  !*** ./lib/BrowserUtilities.js ***!
  \*********************************/
/*! exports provided: BrowserUtilities */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrowserUtilities", function() { return BrowserUtilities; });
/* harmony import */ var _SPKillSwitch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SPKillSwitch */ "2Wio");
/* harmony import */ var _Guid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Guid */ "UCHU");


/**
 * BrowserUtilities contains common utilities for browser related operations.
 * @internal
 */
var BrowserUtilities = /** @class */ (function () {
    function BrowserUtilities() {
    }
    BrowserUtilities.isWebViewHosted = function () {
        if (typeof BrowserUtilities._isWebViewHosted === 'undefined') {
            BrowserUtilities._isWebViewHosted =
                BrowserUtilities.isMobileWebView() ||
                    BrowserUtilities.isTeamsWebViewHosted() ||
                    (/[?&]env=WebView/.test(location.search));
        }
        return BrowserUtilities._isWebViewHosted;
    };
    BrowserUtilities.isTeamsWebViewHosted = function () {
        if (typeof BrowserUtilities._isTeamsWebView === 'undefined') {
            var ua = navigator.userAgent;
            BrowserUtilities._isTeamsWebView =
                /* Electron WebView (scoped to Microsoft Teams for now) */
                // tslint:disable-next-line:max-line-length
                /Teams\/((?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+)).* Electron\/((?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+))/.test(ua) ||
                    (/[?&]env=TeamsWebView/.test(location.search));
        }
        return BrowserUtilities._isTeamsWebView;
    };
    /**
     * When SharePoint is hosted in Teams, it can either be in :
     *    1. Teams Desktop Client: Electron Webview
     *    2. Teams in Browser: Iframe
     *
     * Desktop Client is identifiable via the user-agent.
     * However, for Teams in Browser, since we cannot leverage user-agent,
     * we'll be using window.name property to get the host iframe's name,
     * which when equal to "embedded-page-container" lets us know that
     * SharePoint is currently running in Teams in Browser.
     */
    BrowserUtilities.isTeamsBrowserHosted = function () {
        if (typeof BrowserUtilities._isTeamsBrowser === 'undefined') {
            BrowserUtilities._isTeamsBrowser = false;
            try {
                BrowserUtilities._isTeamsBrowser = (window.name === 'embedded-page-container');
            }
            catch (e) { /* no-op */ }
        }
        return BrowserUtilities._isTeamsBrowser;
    };
    /**
     * Return true, if SharePoint is hosted in Teams, either Webview or Browser
     */
    BrowserUtilities.isTeamsHosted = function () {
        if (_SPKillSwitch__WEBPACK_IMPORTED_MODULE_0__["default"].isActivated(_Guid__WEBPACK_IMPORTED_MODULE_1__["default"].parse('0100eb79-e269-4683-b118-81ca4eaaa794'), '10/16/2019', 'Check SharePoint hosted in Teams in Browser')) {
            return BrowserUtilities.isTeamsWebViewHosted();
        }
        return BrowserUtilities.isTeamsWebViewHosted() || BrowserUtilities.isTeamsBrowserHosted();
    };
    BrowserUtilities.isSharePointiOSApp = function () {
        if (typeof BrowserUtilities._isSharePointiOSApp === 'undefined') {
            var userAgent = navigator.userAgent;
            BrowserUtilities._isSharePointiOSApp =
                /* iOS WebView */
                /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/.test(userAgent) ||
                    BrowserUtilities._isTestMobileWebView();
            if (this._isMobileIntuneBrowser(userAgent)) {
                BrowserUtilities._isSharePointiOSApp = false;
            }
        }
        return BrowserUtilities._isSharePointiOSApp;
    };
    BrowserUtilities.isMobileWebView = function () {
        if (typeof BrowserUtilities._isMobileWebView === 'undefined') {
            var ua = navigator.userAgent;
            BrowserUtilities._isMobileWebView =
                /* iOS WebView */
                this.isSharePointiOSApp() ||
                    /* Android WebView (Lollipop+older) */
                    /(Android ).*; wv/.test(ua) ||
                    /(Android ).* Version\/((?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+))/.test(ua) ||
                    /* Windows WebView (C# and JavaScript-based apps) */
                    ((navigator.userAgent.indexOf(BrowserUtilities._sharePointDesktopString) === -1) &&
                        (/(Windows ).*; WebView\/((?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+))/.test(ua) ||
                            /(Windows ).*; MSAppHost\/((?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+))/.test(ua))) ||
                    BrowserUtilities._isTestMobileWebView();
            if (this._isMobileIntuneBrowser(navigator.userAgent)) {
                BrowserUtilities._isMobileWebView = false;
            }
        }
        return BrowserUtilities._isMobileWebView;
    };
    BrowserUtilities.isMobileBrowser = function () {
        if (typeof BrowserUtilities._isMobileBrowser === 'undefined') {
            //
            // NOTE:
            // Currently matching hosted Android WebKit, iPhone/iPod Mobile Safari and IE Mobile.
            // May be extended to cover other mobile browsers as necessary. Not a perfect science.
            //
            BrowserUtilities._isMobileBrowser = BrowserUtilities.isWebViewHosted() ||
                /(Android|iPhone|iPod|IEMobile|BlackBerry)/.test(navigator.userAgent) ||
                (/[?&]env=Mobile/.test(location.search));
        }
        return BrowserUtilities._isMobileBrowser;
    };
    BrowserUtilities.isEmbedded = function () {
        if (typeof BrowserUtilities._isEmbedded === 'undefined') {
            if (BrowserUtilities.isWebViewHosted() || /[?&]PageVersion=[^&]/.test(location.search)) {
                BrowserUtilities._isEmbedded = true;
            }
            else if (navigator.userAgent.indexOf('ManagedBrowser') > -1) {
                BrowserUtilities._isEmbedded = false;
            }
            else {
                try {
                    var isIframeOrPhantomJS = (window.parent &&
                        window.parent !== window &&
                        navigator.userAgent.indexOf('PhantomJS/') === -1);
                    BrowserUtilities._isEmbedded = isIframeOrPhantomJS || /[?&]env=Embedded/.test(location.search);
                }
                catch (e) {
                    BrowserUtilities._handleErrorForParentWindowCheck();
                }
            }
        }
        return BrowserUtilities._isEmbedded;
    };
    BrowserUtilities.supportsServiceWorker = function () {
        return BrowserUtilities._serviceWorkerProperty in navigator;
    };
    BrowserUtilities.supportsNavigationPreload = function () {
        // ServiceWorkerRegistration is available on global window object
        return !!window.ServiceWorkerRegistration &&
            BrowserUtilities._navigationPreloadProperty in window.ServiceWorkerRegistration.prototype;
    };
    BrowserUtilities._isTestMobileWebView = function () {
        return (/[?&]env=MobileWebView/.test(location.search));
    };
    BrowserUtilities._isMobileIntuneBrowser = function (userAgent) {
        return navigator.userAgent.indexOf('ManagedBrowser') > -1;
    };
    BrowserUtilities._handleErrorForParentWindowCheck = function () {
        //
        // Accessing window.parent x-domain throws - then window.parent !== window,
        // and we can assume we are hosted in an x-domain iframe
        //
        BrowserUtilities._isEmbedded = true;
    };
    BrowserUtilities._sharePointDesktopString = 'SharePointDesktop';
    BrowserUtilities._serviceWorkerProperty = 'serviceWorker';
    BrowserUtilities._navigationPreloadProperty = 'navigationPreload';
    return BrowserUtilities;
}());



/***/ }),

/***/ "UCHU":
/*!*********************!*\
  !*** ./lib/Guid.js ***!
  \*********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Text */ "OFYJ");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");



/**
 * This class represents a globally unique identifier, as described by
 * IETF RFC 4122.
 *
 * @remarks
 * The input string is normalized and validated, which provides
 * important guarantees that simplify other code that works with the GUID.
 * This class also provides basic support for generating a pseudo-random GUID;
 * however, be aware that the uniqueness depends on the browser's `Math.random()`
 * function and may be not be suitable for some applications.
 *
 * See {@link https://www.ietf.org/rfc/rfc4122.txt | RFC4122} for more information.
 *
 * @public
 */
var Guid = /** @class */ (function () {
    /**
     * Use `Guid.parse()` or `Guid.tryParse()` instead of the constructor.
     * @param guid - a normalized, already valid Guid string
     */
    function Guid(guid) {
        this._guid = guid;
    }
    /**
     * Returns a new Guid instance with a pseudo-randomly generated GUID, according
     * to the version 4 UUID algorithm from RFC 4122.
     *
     * @returns A new unique Guid object
     */
    Guid.newGuid = function (randomNumberGenerator) {
        return new Guid(Guid._generateGuid(randomNumberGenerator));
    };
    /**
     * Parses the input string to construct a new Guid object.
     * If the string cannot be parsed, then an error is thrown.
     *
     * @remarks
     * Example syntaxes accepted by this function:
     *
     * - `"d5369f3bbd7a412a9c0f7f0650bb5489"`
     *
     * - `"d5369f3b-bd7a-412a-9c0f-7f0650bb5489"`
     *
     * - `"{d5369f3b-bd7a-412a-9c0f-7f0650bb5489}"`
     *
     * - `"/Guid(d5369f3b-bd7a-412a-9c0f-7f0650bb5489)/"`
     *
     * @param guid - The input string.
     * @returns A valid Guid object
     */
    Guid.parse = function (guidString) {
        var guid = Guid.tryParse(guidString);
        if (!guid) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_1__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].invalidGuidStringError, guidString));
        }
        return guid;
    };
    /**
     * Attempts to parse the input string to construct a new Guid object.
     * If the string cannot be parsed, then undefined is returned.
     *
     * @remarks
     * Example syntaxes accepted by this function:
     *
     * - `"d5369f3bbd7a412a9c0f7f0650bb5489"`
     *
     * - `"d5369f3b-bd7a-412a-9c0f-7f0650bb5489"`
     *
     * - `"{d5369f3b-bd7a-412a-9c0f-7f0650bb5489}"`
     *
     * - `"/Guid(d5369f3b-bd7a-412a-9c0f-7f0650bb5489)/"`
     *
     * @param guid - The input string.
     * @returns The Guid object, or undefined if the string could not be parsed.
     */
    Guid.tryParse = function (guid) {
        if (guid) {
            guid = Guid._normalize(guid);
            if (Guid._guidRegEx.test(guid)) {
                return new Guid(guid);
            }
        }
        return undefined;
    };
    /**
     * Indicates whether a GUID is valid, i.e. whether it would be successfully
     * parsed by `Guid.tryParse()`.  This function is cheaper than `Guid.tryParse()`
     * because it does not construct a Guid object.
     *
     * @param guid - The input string.
     * @returns true, if the Guid is valid.
     */
    Guid.isValid = function (guid) {
        if (guid) {
            guid = Guid._normalize(guid);
            if (Guid._guidRegEx.test(guid)) {
                return true;
            }
        }
        return false;
    };
    /**
     * SharePoint can have guids in the form:
     *   - `Guid(...)`
     *   - `{...}`
     * _normalize transforms guids in this format to the standard
     * guid format.
     *
     * Example: `Guid(d5369f3b-bd7a-412a-9c0f-7f0650bb5489)` becomes `d5369f3b-bd7a-412a-9c0f-7f0650bb5489`
     * Example: `{d5369f3b-bd7a-412a-9c0f-7f0650bb5489}` becomes `d5369f3b-bd7a-412a-9c0f-7f0650bb5489`
     *
     * @param guid - Guid to be normalized, could already be normalized.
     * @returns Normalized guid.
     */
    Guid._normalize = function (guid) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(guid, 'guid');
        // Check for Guid(...) and strip
        var result = /^Guid\((.*)\)/i.exec(guid); /* tslint:disable-line:no-null-keyword */
        if (result) {
            guid = result[1];
        }
        // Check for and strip leading or trailing curly braces
        if (guid.length === 38) {
            guid = guid.substr(1, 36);
        }
        return guid.toLowerCase();
    };
    /**
     * Creates a new guid.
     *
     * @returns A valid guid (according to RFC4122)
     */
    Guid._generateGuid = function (randomNumberGenerator) {
        return 'AAAAAAAA-AAAA-4AAA-BAAA-AAAAAAAAAAAA'.replace(/[AB]/g, 
        // Callback for String.replace() when generating a guid.
        function (character) {
            var randomNumber = randomNumberGenerator ? randomNumberGenerator.generate() : Math.random();
            /* tslint:disable:no-bitwise */
            var num = randomNumber * 16 | 0;
            // Check for 'A' in template string because the first characters in the
            // third and fourth blocks must be specific characters (according to "version 4" UUID from RFC 4122)
            var masked = character === 'A' ? num : (num & 0x3 | 0x8);
            return masked.toString(16);
        });
    };
    /**
     * Compare this instance to another Guid instance
     *
     * @returns True if this instance and the specified Guid object
     * represent the same value.
     */
    Guid.prototype.equals = function (guid) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(guid, 'guid');
        return guid && this._guid.toString() === guid.toString();
    };
    /**
     * Returns a string representation of the GUID
     *
     * @returns The GUID value in lowercase hexadecimal without braces.
     *
     * Example: `'d5369f3b-bd7a-412a-9c0f-7f0650bb5489'`
     */
    Guid.prototype.toString = function () {
        return this._guid;
    };
    /**
     * Returns a new empty Guid instance.
     *
     * @returns A new empty Guid object.
     */
    Guid.empty = new Guid('00000000-0000-0000-0000-000000000000');
    Guid._guidRegEx = /^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i;
    return Guid;
}());
/* harmony default export */ __webpack_exports__["default"] = (Guid);


/***/ }),

/***/ "XxFD":
/*!****************************************!*\
  !*** ./lib/serviceScope/ServiceKey.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Text */ "OFYJ");
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Validate */ "wAtz");


var SERVICEKEY_LASTID_WINDOW_VAR = '_SPFX_ServiceKey_lastId';
/**
 * The ServiceKey is a lookup key that is used when calling {@link ServiceScope.consume}
 * to fetch a dependency.
 *
 * @remarks
 * Every service key also provides a default implementation of the dependency, which will
 * be automatically created in the root scope if the dependency is not found.  Providing a default
 * implementation ensures that new dependencies can be safely introduced without inadvertently
 * breaking components that are loaded by an older host that does not provide the new dependency.
 *
 * @public
 */
var ServiceKey = /** @class */ (function () {
    function ServiceKey(id, name, defaultCreator) {
        this.id = id;
        this.name = name;
        this.defaultCreator = defaultCreator;
    }
    /**
     * Constructs a new ServiceKey whose default implementation will be a new instance of
     * a TypeScript class that accepts the standard constructor parameter.
     *
     * @remarks
     * If you want to specify custom constructor parameters, use {@link ServiceKey.createCustom}
     * instead.
     *
     * @param name - A name such as "my-package.IMyService" which should be unique across packages.
     * @param serviceClass - the TypeScript class that implements the service.
     * @returns the newly created ServiceKey
     */
    ServiceKey.create = function (name, serviceClass) {
        // (createCustom() will validate name)
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(serviceClass, 'serviceClass');
        return ServiceKey.createCustom(name, function (serviceScope) {
            return new serviceClass(serviceScope);
        });
    };
    /**
     * Constructs a new ServiceKey whose default implementation will be obtained
     * by invoking the specified callback.
     *
     * @param name - A name such as "my-package.IMyService" which should be unique across packages.
     * @param defaultCreator - a callback that returns an object that implements the T interface
     * @returns the newly created service key
     */
    ServiceKey.createCustom = function (name, defaultCreator) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNonemptyString(name, 'name');
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(defaultCreator, 'defaultCreator');
        var numericId;
        var lastId = window[SERVICEKEY_LASTID_WINDOW_VAR];
        if (lastId !== undefined && typeof (lastId) === 'number') {
            numericId = lastId + 1;
            // It seems inconceivable that we would increment all the way up to MAX_SAFE_INTEGER,
            // but nonetheless let's make sure that incrementing is actually producing something new
            if (numericId === lastId) {
                throw new Error('ServiceKey.createCustom() counter overflow');
            }
        }
        else {
            numericId = 1;
        }
        window[SERVICEKEY_LASTID_WINDOW_VAR] = numericId;
        // For example if name="sp-http:SPHttpClient 2" and numericId=5 then the generated ID would be:
        // "sp-http:SPHttpClient2_5".
        var id = _Text__WEBPACK_IMPORTED_MODULE_0__["default"].replaceAll(name, ' ', '') + '_' + numericId;
        return new ServiceKey(id, name, defaultCreator);
    };
    return ServiceKey;
}());
/* harmony default export */ __webpack_exports__["default"] = (ServiceKey);


/***/ }),

/***/ "Y40n":
/*!***********************************!*\
  !*** ./lib/ClientManifestData.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _serviceScope_ServiceKey__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./serviceScope/ServiceKey */ "XxFD");

/**
 * ClientManifestData contains Component's Manifest.
 * Used for logging the calling component's manifest when communicating with external services.
 *
 * @internal
 */
var ClientManifestData = /** @class */ (function () {
    function ClientManifestData(serviceScope, manifest) {
        this.manifest = manifest;
    }
    ClientManifestData.serviceKey = _serviceScope_ServiceKey__WEBPACK_IMPORTED_MODULE_0__["default"].create('sp-core-library:ClientManifestData', ClientManifestData);
    return ClientManifestData;
}());
/* harmony default export */ __webpack_exports__["default"] = (ClientManifestData);


/***/ }),

/***/ "ZY2i":
/*!************************!*\
  !*** ./lib/SPError.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");
// Copyright (c) Microsoft. All rights reserved.
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();


/**
 * The purpose of this class is to help make the SharePoint framework errors more robust.
 * On top of the base Error class functionality, this class adds the concept of error codes.
 * The error code could be a non-localized immutable string or an error number. All the
 * SharePoint framework code is expected to use this class for raising errors.
 *
 * References:
 *
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}
 *
 * {@link http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript}
 *
 * @alpha
 */
var SPError = /** @class */ (function (_super) {
    __extends(SPError, _super);
    /**
     * Constructor for the SPError class.
     *
     * @param errorCode - a numeric or string error code.
     * @param message - detailed error message.
     * @param logData - (optional) additional data that can be used to troubleshoot rare to repro bugs.
     *
     */
    function SPError(errorCode, message, logProperties) {
        var _this = _super.call(this, message) || this;
        // Manually set the prototype, as we can no longer extend built-in classes like Error, Array, Map, etc
        // tslint:disable-next-line:max-line-length
        // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
        //
        // Note: the prototype must also be set on any classes which extend this one
        _this.__proto__ = SPError.prototype; // tslint:disable-line:no-any
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(errorCode, 'errorCode');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(message, 'message');
        _this._errorCode = errorCode;
        _this.message = message;
        _this._logProperties = logProperties;
        // IE doesn't get a stack unless you throw an error explictly. Throwing an SPError will not get you the stack.
        _this.stack = (new Error()).stack || SPError._generateErrorStackForIE();
        return _this;
    }
    Object.defineProperty(SPError.prototype, "id", {
        /**
         * Error id.
         * e.g. Value of the enum.
         */
        get: function () {
            return -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPError.prototype, "category", {
        /**
         * Error category.
         */
        get: function () {
            return 'SPError';
        },
        enumerable: true,
        configurable: true
    });
    // Useful for generating an error stack on IE11 for SPError
    SPError._generateErrorStackForIE = function () {
        try {
            throw new Error();
        }
        catch (e) {
            return e.stack;
        }
    };
    /**
     * Return a string equivalent of the error for display purposes.
     *
     * @returns string representation of the error.
     */
    SPError.prototype.toStringForUI = function () {
        return this._toString(true);
    };
    /**
     * Return a string equivalent of the error for logging purposes.
     *
     * @returns string representation of the error.
     */
    SPError.prototype.toString = function () {
        return this._toString();
    };
    /**
     * Return a string equivalent of the error for logging or display purposes.
     *
     * @returns string representation of the error.
     */
    SPError.prototype._toString = function (logDebug) {
        if (!this._errorString) {
            var errorMessageArray = [
                "[" + this.category + "." + this._errorCode + "]:",
                "" + this.message,
                ''
            ];
            if (logDebug || true) {
                // For now support only one level exception hierarchy.
                if (this.innerError) {
                    errorMessageArray = errorMessageArray.concat([
                        _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].spErrorInnerErrorText,
                        this.innerError.message
                    ]);
                }
                if (this.stack) {
                    errorMessageArray = errorMessageArray.concat([
                        _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].spErrorCallStackText,
                        this.stack
                    ]);
                }
                if (this._logProperties) {
                    errorMessageArray = errorMessageArray.concat([
                        _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].spErrorLogPropertiesText,
                        JSON.stringify(this._logProperties)
                    ]);
                }
            }
            this._errorString = errorMessageArray.join('\r\n');
        }
        return this._errorString;
    };
    return SPError;
}(Error));
/* harmony default export */ __webpack_exports__["default"] = (SPError);


/***/ }),

/***/ "bd35":
/*!******************************************!*\
  !*** ./lib/serviceScope/ServiceScope.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Text */ "OFYJ");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../SPCoreLibraryStrings.resx */ "480N");


/**
 * The service locator pattern used by the SharePoint Framework.
 *
 * @remarks
 * ServiceScope provides a formalized way for components to register and consume dependencies
 * ("services"), and to enable different implementations to be registered in different scopes.
 * This improves modularity by decoupling components from their dependencies in an extensible way.
 *
 * For example, suppose that various components need access to an IPageManager instance.  We could
 * simply make the PageManager a singleton (i.e. global variable), but this will not work e.g. if
 * we need to create a pop-up dialog that requires a second PageManager instance.  A better solution
 * would be to add the PageManager as a constructor parameter for each component that requires it,
 * however then we immediately face the problem that any code that calls these constructors
 * also needs a PageManager parameter.  In an application with many such dependencies, business
 * logic that ties together many subsystems would eventually pick up a constructor parameter
 * for every possible dependency, which is awkward.  A natural solution would be to move all the
 * dependencies into a class with name like "ApplicationContext", and then pass this around as our
 * constructor parameter.  This enables the PageManager to be passed to classes that need it
 * without cluttering the intermediary classes that don't.  However, it still has a design problem
 * that "ApplicationContext" has hard-coded dependencies on many unrelated things.  A more flexible
 * approach is to make it a dictionary that can look up items for consumers/providers who know the
 * right lookup key (i.e. ServiceKey).  This is the popular "service locator" design pattern,
 * familiar from the SPContext API in classic SharePoint.
 *
 * ServiceScope takes this idea a step further in two important ways:  First, it provides a scoping
 * mechanism so that e.g. if we have two different pages, they can each provide a unique PageManager
 * instance while still sharing other common dependencies.  Secondly, it allows for a ServiceKey
 * to provide a default implementation of the dependency.  This is important for API stability in
 * our modular client-side environment:  For example, suppose that version 2.0 of our application
 * introduced a new IDiagnosticTracing interface that a version 2.0 component will expect to consume.
 * If the version 2.0 component gets loaded by an older 1.0 application, it would fail.  We could
 * fix this by requiring each consumer to check for any missing dependencies and handle that case,
 * but it would require a lot of checks.  A better solution is to ensure that a default implementation
 * always exists, perhaps just a trivial behavior, so that components can assume that consume() will
 * always return some object that implements the contract.
 *
 * Usage: ServiceScope instances are created by calling either ServiceScope.startNewRoot() or
 * ServiceScope.startNewChild().  They are initially in an "unfinished" state, during which provide()
 * can be called to register service keys, but consume() is disallowed.  After ServiceScope.finish()
 * is called, consume() is allowed and provide() is now disallowed.  These semantics ensure that
 * ServiceScope.consume() always returns the same result for the same key, and does not depend on
 * order of initialization.  It also allows us to support circular dependencies without worrying
 * about infinite loops.  (Circular dependencies are best avoided, however this is difficult to
 * guarantee when working with components that were contributed by various third parties without
 * any coordination.)  To avoid mistakes, it's best to always call consume() inside a callback from
 * serviceScope.whenFinished().
 *
 * @public
 */
var ServiceScope = /** @class */ (function () {
    function ServiceScope(parent) {
        this._parent = parent;
        this._registrations = {};
        this._pendingCallbacks = [];
        this._finished = false;
        this._autocreating = false;
    }
    /**
     * Create a new root-level ServiceScope.  Only root-level scopes have the ability to autocreate
     * default implementations of ServiceKeys.
     *
     * @returns the newly created root ServiceScope
     */
    ServiceScope.startNewRoot = function () {
        return new ServiceScope(undefined);
    };
    /**
     * This is a shorthand function that is equivalent to constructing a new instance of the
     * simpleServiceClass, then registering it by calling ServiceScope.provide().
     *
     * @param serviceKey - the key that can be used later to consume the service
     * @param simpleServiceClass - the TypeScript class to be constructed
     * @returns a newly constructed instance of simpleServiceClass
     */
    ServiceScope.prototype.createAndProvide = function (serviceKey, simpleServiceClass) {
        return this.provide(serviceKey, new simpleServiceClass(this));
    };
    /**
     * This is a shorthand function that constructs the default implementation of the specified
     * serviceKey, and then registers it by calling ServiceScope.provide().
     *
     * @param serviceKey - the key that can be used later to consume the service
     * @returns a service instance that was constructed using ServiceKey.defaultCreator
     */
    ServiceScope.prototype.createDefaultAndProvide = function (serviceKey) {
        var service = serviceKey.defaultCreator(this);
        return this.provide(serviceKey, service);
    };
    /**
     * Consumes a service from the service scope.
     *
     * @remarks
     * Components should call this function to "consume" a dependency, i.e. look up the serviceKey
     * and return the registered service instance.  If the instance cannot be found, then a default
     * instance will be automatically created and registered with the root ServiceScope.
     *
     * @param serviceKey - the key that was used when provide() was called to register the service
     * @returns the service instance
     */
    ServiceScope.prototype.consume = function (serviceKey) {
        if (!this._finished) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].serviceScopeConsumingBeforeFinished);
        }
        if (this._autocreating) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].serviceScopeConsumingDuringAutoCreation);
        }
        var registration = this._registrations[serviceKey.id];
        if (registration) {
            return registration.service;
        }
        if (this._parent) {
            return this._parent.consume(serviceKey);
        }
        // We've reached the root scope without finding the service.  Construct a default instance
        var autocreatedService = undefined;
        this._autocreating = true;
        try {
            autocreatedService = serviceKey.defaultCreator(this);
            this._registerService(serviceKey, autocreatedService);
        }
        finally {
            this._autocreating = false;
        }
        if (autocreatedService === undefined) {
            throw Error('ServiceKey must have an type');
        }
        this._processPendingCallbacks();
        return autocreatedService;
    };
    /**
     * Completes the initialization sequence for a service scope.
     *
     * @remarks
     * When a ServiceScope is first started, it is in an "unfinished" state where provide() is
     * allowed but consume() is disallowed.  After calling finish(), then consume() is allowed
     * but provide() is disallowed.
     *
     * This formalism prevents a number of complex situations that could lead to bugs.  For example,
     * supposed that Scope2 is a child of Scope1, and Scope1 provides instance A1 of interface A.
     * If someone consumes A1 from Scope2 (via inheritance) before Scope2.provide() is called
     * with A2, then a subsequent call to Scope2.consume() might return a different result than
     * the previous call.  This nondeterminism could cause unpredictable results that are
     * difficult to diagnose.
     */
    ServiceScope.prototype.finish = function () {
        if (this._finished) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].serviceScopeAlreadyFinishedError);
        }
        this._finished = true;
        this._processPendingCallbacks();
    };
    /**
     * Returns the parent of the current ServiceScope, or undefined if this is a root scope.
     *
     * @returns the parent service scope
     */
    ServiceScope.prototype.getParent = function () {
        return this._parent;
    };
    /**
     * Defer an operation until after {@link ServiceScope.finish} has completed.
     *
     * @remarks
     * It is an error to call ServiceScope.consume() before finish() has been called.
     * The most reliable way to protect your component against this error is to perform the
     * consume() calls inside a whenFinished() callback.  If the service scope is already
     * finished, then the callback will be executed immediately; otherwise, it will be executed
     * later when the scope is finished.
     *
     * NOTE: This is not an asynchronous callback.  ServiceScope initialization is typically
     * inexpensive and short lived. However, the control flow often threads through numerous
     * constructors and base classes, which can be simplified using whenFinished().
     *
     * @param callback - A block of code that needs to call ServiceScope.consume()
     */
    ServiceScope.prototype.whenFinished = function (callback) {
        if (this._finished && !this._autocreating) {
            callback();
        }
        else {
            this._pendingCallbacks.push(callback);
        }
    };
    /**
     * Add a new service to a service scope.
     *
     * @remarks
     * ServiceScope.provide() is used to register an implementation of the given serviceKey
     * for the current scope.  It may only be used when the ServiceScope is in an "unfinished"
     * state, i.e. before finish() has been called.
     *
     * @param serviceKey - the key that will later be used to consume the service
     * @param service - the service instance that is being registered
     * @returns the same object that was passed as the "service" parameter
     */
    ServiceScope.prototype.provide = function (serviceKey, service) {
        if (this._finished) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].serviceScopeProvideServiceAfterFinishedError);
        }
        if (this._registrations[serviceKey.id]) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].serviceScopeProvideServiceThatAlreadyExists, serviceKey.name));
        }
        this._registerService(serviceKey, service);
        return service;
    };
    /**
     * Constructs a new ServiceScope that is a child of the current scope.
     *
     * @remarks
     * The service scopes form a tree structure, such that when consuming a service,
     * if the key is not explicitly provided by a child scope, the parent hierarchy
     * will be consulted.
     *
     * @returns the newly created root ServiceScope
     */
    ServiceScope.prototype.startNewChild = function () {
        return new ServiceScope(this);
    };
    Object.defineProperty(ServiceScope.prototype, "_isFinished", {
        /**
         * Indicates whether the current servicescope is finished or not.
         *
         * @internal
         */
        get: function () {
            return this._finished;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Registers a service to the ServiceScope.
     * @internal
     */
    ServiceScope.prototype._registerService = function (serviceKey, service) {
        this._registrations[serviceKey.id] = { serviceKey: serviceKey, service: service };
    };
    ServiceScope.prototype._processPendingCallbacks = function () {
        var pendingCallbacks = this._pendingCallbacks;
        this._pendingCallbacks = [];
        for (var _i = 0, pendingCallbacks_1 = pendingCallbacks; _i < pendingCallbacks_1.length; _i++) {
            var pendingCallback = pendingCallbacks_1[_i];
            pendingCallback();
        }
    };
    return ServiceScope;
}());
/* harmony default export */ __webpack_exports__["default"] = (ServiceScope);


/***/ }),

/***/ "gLQp":
/*!************************!*\
  !*** ./lib/log/Log.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DefaultLogHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefaultLogHandler */ "LcA1");

/**
 * A basic redirectable logging system.
 *
 * @remarks
 * The Log class provides static methods for logging messages at different levels (verbose,
 * info, warning, error) and with context information. Context information helps identify
 * which component generated the messages and allows for filtering of log events.  In a
 * SharePoint Framework application, these messages will appear on the developer dashboard.
 *
 * @public
 */
var Log = /** @class */ (function () {
    function Log() {
    }
    /**
     * Configures the logger with a different target.
     *
     * @internal
     */
    // @TODO: VSO 285419 will clean up this contract.
    Log._initialize = function (logHandler) {
        Log._logHandler = logHandler;
    };
    /**
     * Logs a message which contains detailed information that is generally only needed for
     * troubleshooting.
     * @param   source - the source from where the message is logged, e.g., the class name.
     *          The source provides context information for the logged message.
     *          If the source's length is more than 20, only the first 20 characters are kept.
     * @param   message - the message to be logged
     *          If the message's length is more than 100, only the first 100 characters are kept.
     * @param   scope - the service scope that the source uses. A service scope can provide
      *         more context information (e.g., web part information) to the logged message.
     */
    Log.verbose = function (source, message, scope) {
        Log._logHandler.verbose(source, message, scope);
    };
    /**
     * Logs a general informational message.
     * @param   source - the source from where the message is logged, e.g., the class name.
     *          The source provides context information for the logged message.
     *          If the source's length is more than 20, only the first 20 characters are kept.
     * @param   message - the message to be logged
     *          If the message's length is more than 100, only the first 100 characters are kept.
     * @param   scope - the service scope that the source uses. A service scope can provide
      *         more context information (e.g., web part information) to the logged message.
     */
    Log.info = function (source, message, scope) {
        Log._logHandler.info(source, message, scope);
    };
    /**
     * Logs a warning.
     * @param   source - the source from where the message is logged, e.g., the class name.
     *          The source provides context information for the logged message.
     *          If the source's length is more than 20, only the first 20 characters are kept.
     * @param   message - the message to be logged
     *          If the message's length is more than 100, only the first 100 characters are kept.
     * @param   scope - the service scope that the source uses. A service scope can provide
      *         more context information (e.g., web part information) to the logged message.
     */
    Log.warn = function (source, message, scope) {
        Log._logHandler.warn(source, message, scope);
    };
    /**
     * Logs an error.
     * @param   source - the source from where the error is logged, e.g., the class name.
     *          The source provides context information for the logged error.
     *          If the source's length is more than 20, only the first 20 characters are kept.
     * @param   error - the error to be logged
     * @param   scope - the service scope that the source uses. A service scope can provide
      *         more context information (e.g., web part information) to the logged error.
     */
    Log.error = function (source, error, scope) {
        Log._logHandler.error(source, error, scope);
    };
    Log._logHandler = new _DefaultLogHandler__WEBPACK_IMPORTED_MODULE_0__["default"]();
    return Log;
}());
/* harmony default export */ __webpack_exports__["default"] = (Log);


/***/ }),

/***/ "jjO0":
/*!************************!*\
  !*** ./lib/Session.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Guid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Guid */ "UCHU");
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony import */ var _log_Log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./log/Log */ "gLQp");



/**
 * Provides access to the application's browser session and active page.
 *
 * @public
 */
var Session = /** @class */ (function () {
    function Session() {
    }
    /**
     * This is called once by the system during startup to initialize the Session object.
     * @internal
     */
    Session._initialize = function (data) {
        _Validate__WEBPACK_IMPORTED_MODULE_1__["default"].isNotNullOrUndefined(data, 'data');
        Session._applicationId = _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].tryParse(data.applicationId) || _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].empty;
        var pageIdGuid = _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].tryParse(data.pageId);
        if (!pageIdGuid) {
            _log_Log__WEBPACK_IMPORTED_MODULE_2__["default"].warn('Session', 'The pageId parameter was undefined or invalid. Generating a new Guid');
            pageIdGuid = _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].newGuid();
        }
        Session._pageId = pageIdGuid;
    };
    /**
     * This is called by the framework to indicate that the current page has changed.
     * @internal
     */
    Session._changePage = function () {
        Session._pageId = _Guid__WEBPACK_IMPORTED_MODULE_0__["default"].newGuid();
    };
    Object.defineProperty(Session, "applicationId", {
        /**
         * A unique identifier for the current instance of the client-side application.
         *
         * @remarks
         * A unique identifier used to correlate logging and other diagnostic information. Its lifetime
         * persists for the duration of the client-side application instance, i.e. it begins with the
         * server request that renders the page, and ends e.g. when the browser tab is closed or F5 is
         * pressed to reload the page.  Note that if the application's router supports in-place navigation
         * (via the history.pushState() API), the application session persists across these transitions.
         */
        get: function () {
            return this._applicationId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Session, "pageId", {
        /**
         * A unique identifier for the current page within the client-side application.
         *
         * @remarks
         * A unique identifier used to correlate logging and other diagnostic information.  Whereas the
         * {@link Session.applicationId} tracks the entire lifetime of the client-side application instance,
         * the pageId tracks an individual "page" that is rendered.
         *
         * For example, suppose that the application initially loads PageA, then the user does in-place
         * navigation (via the history.pushState() API) to PageB, then navigates back to PageA, and finally
         * they close the browser tab. During this sequence, the applicationId will remain the same, however
         * the pageId will change on each navigation.  The 3 different pageId values are used by the diagnostics
         * e.g. to track success/failure statistics for PageA independently of PageB.
         *
         * The concept of a page is subjective and defined by the router for a particular application.
         */
        get: function () {
            return this._pageId;
        },
        enumerable: true,
        configurable: true
    });
    return Session;
}());
/* harmony default export */ __webpack_exports__["default"] = (Session);


/***/ }),

/***/ "kYSd":
/*!**************************************!*\
  !*** ./lib/events/SPEventManager.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Validate */ "wAtz");
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Text */ "OFYJ");
/* harmony import */ var _log_Log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../log/Log */ "gLQp");



/**
 * Manager for the eventing system.
 *
 * Allows to register/unregister event handlers to events, and raises those events.
 * The events are identified by its name as a string, and it doesn't provide type safety for the event arguments.
 *
 * There are two types of events: regular and sticky.
 * Sticky events are events that once raised, every listener that subscribed to the event will be automatically
 * executed as if the event was raised.
 * Sticky events are useful for framework-level notification, like when a system is initialized (every listener will
 * know the system is initialized).
 *
 * This is an internal architecture underlying the SPEvent class, which provides a handy way to register and unregister
 * events, and provides the type safety. This class should not be exposed to third-parties directly.
 *
 * @internal
 */
var SPEventManager = /** @class */ (function () {
    function SPEventManager() {
        this._listeners = new Map();
        this._raisedEvents = new Map();
    }
    Object.defineProperty(SPEventManager, "instance", {
        /**
         * Instance of the SPEventManager.
         */
        get: function () {
            if (!this._instance) {
                this._instance = new SPEventManager();
            }
            return this._instance;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Raises an event.
     *
     * After this is called, all components registered under the event will execute their callback.
     * @param eventName - Name of the event
     * @param eventArgs - Arguments of the event
     * @alpha
     */
    SPEventManager.prototype.raiseEvent = function (eventName, eventArgs) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventName, 'eventName');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventArgs, 'eventArgs');
        return this._raiseEventInternal(eventName, eventArgs);
    };
    /**
     * Raises a sticky event.
     * Sticky events are stored, so when new listeners are added to the event, they will be immediately notified.
     *
     * After this is called, all components registered under the event will execute their callback.
     * @param eventName - Name of the event
     * @param eventArgs - Arguments of the event
     * @alpha
     */
    SPEventManager.prototype.raiseStickyEvent = function (eventName, eventArgs) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventName, 'eventName');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventArgs, 'eventArgs');
        // Save the last event raised for each event name
        this._raisedEvents.set(eventName, eventArgs);
        return this._raiseEventInternal(eventName, eventArgs);
    };
    /**
     * Registers an event handler for an event.
     * @param eventName - Name of the event to register to.
     * @param observer - Component that is registering the event.
     * @param eventHandler - Function to handle the event.
     */
    SPEventManager.prototype.registerEvent = function (eventName, observer, eventHandler) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventName, 'eventName');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(observer, 'observer');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventHandler, 'eventHandler');
        if (!this._listeners.has(eventName)) {
            this._listeners.set(eventName, []);
        }
        this._listeners.get(eventName).push({ observer: observer, eventHandler: eventHandler });
        // If an event has been raised and an observer registers later, it will execute the handler
        // This is to support cases when a component gets loaded after the page loads, so they can know
        // the page had a navigation, and potentially placeholders were already set up.
        if (this._raisedEvents.has(eventName)) {
            eventHandler.call(observer, this._raisedEvents.get(eventName));
        }
    };
    /**
     * Removes an event handler from the event listeners list.
     * The event handler passed as input must be the first one that was used to register to the event.
     *
     * @remarks
     * If this is requested without adding an event handler first, it logs an error.
     *
     * @param eventName - Name of the event to remove the event handler from.
     * @param observer - Component that is deregistering from the event.
     * @param eventHandler - Function to handle the event. Used to remove it from the list of listeners.
     */
    SPEventManager.prototype.unregisterEvent = function (eventName, observer, eventHandler) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventName, 'eventName');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(observer, 'observer');
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(eventHandler, 'eventHandler');
        if (!this._listeners.has(eventName)) {
            return;
        }
        var listeners = this._listeners.get(eventName);
        var filteredListeners = listeners.filter(function (el) { return el.observer !== observer || el.eventHandler !== eventHandler; });
        if (filteredListeners.length === listeners.length) {
            var errorMessage = _Text__WEBPACK_IMPORTED_MODULE_1__["default"].format(
            // TODO VSO:#394928 Localize error messages
            'Failed to remove event handler for component "{0}". Event handler was not registered.', observer.componentId);
            _log_Log__WEBPACK_IMPORTED_MODULE_2__["default"].error(SPEventManager._logSource, new Error(errorMessage));
        }
        this._listeners.set(eventName, filteredListeners);
    };
    /**
     * Removes all information from an event from the Event Manager, including all listeners.
     *
     * @param eventName - Name of the event to remove.
     */
    SPEventManager.prototype.removeEvent = function (eventName) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventName, 'eventName');
        this._listeners.delete(eventName);
    };
    /**
     * Removes all information for all events whose id starts with the provided prefix from the Event Manager.
     * This removes all listeners for all events that match.
     *
     * @param eventNamePrefix - Prefix for the event names.
     */
    SPEventManager.prototype.removeEventsByPrefix = function (eventNamePrefix) {
        var _this = this;
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNonemptyString(eventNamePrefix, 'eventNamePrefix');
        var matchedKeys = [];
        this._listeners.forEach(function (value, key) {
            if (key.indexOf(eventNamePrefix) === 0) {
                matchedKeys.push(key);
            }
        });
        matchedKeys.forEach(function (key) { return _this._listeners.delete(key); });
    };
    /**
     * Returns the number of listeners for a particular event
     *
     * @internal
     */
    SPEventManager.prototype._listenerCount = function (eventName) {
        if (!this._listeners.has(eventName)) {
            return 0;
        }
        return this._listeners.get(eventName).length;
    };
    /**
     * Private function to raise an event.
     * This include the shared functionality between raising sticky and regular events.
     *
     * After this is called, all components registered under the event will execute their callback.
     * @param eventName - Name of the event
     * @param eventArgs - Arguments of the event
     */
    SPEventManager.prototype._raiseEventInternal = function (eventName, eventArgs) {
        var _this = this;
        if (!this._listeners.has(eventName)) {
            return;
        }
        this._listeners.get(eventName).forEach(function (listener) {
            if (listener.observer.isDisposed) {
                _this.unregisterEvent(eventName, listener.observer, listener.eventHandler);
            }
            else {
                try {
                    listener.eventHandler.call(listener.observer, eventArgs);
                }
                catch (e) {
                    var errorMessage = _Text__WEBPACK_IMPORTED_MODULE_1__["default"].format(
                    // TODO VSO:#394928 Localize error messages
                    'Failed to execute event handler for component "{0}"', listener.observer.componentId);
                    _log_Log__WEBPACK_IMPORTED_MODULE_2__["default"].error(SPEventManager._logSource, new Error(errorMessage));
                }
            }
        });
    };
    SPEventManager._logSource = 'SPEventManager';
    return SPEventManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPEventManager);


/***/ }),

/***/ "lGl9":
/*!******************************!*\
  !*** ./lib/JsonUtilities.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// Copyright (c) Microsoft. All rights reserved.
/**
 * Utililty code to help manipulate JSON objects/strings.
 * See {@link http://www.json.org} for more information.
 *
 * @alpha
 */
var JsonUtilities = /** @class */ (function () {
    function JsonUtilities() {
    }
    /**
     * Encode a json string such that it can be safely transported over a network and be processed
     * in the server side code. And also safely transported back to the client and consumed by
     * JSON.parse().
     *
     * @param json - the json string to encode.
     */
    JsonUtilities.encode = function (json) {
        // Note from Manish:
        // Need for this stems from the
        // fact that JSON.stringify() does not encode all the required characters to make it safe to be
        // transported over a network. Neither does it provide an option to. Further, one might think
        // that JSON is a subset of Javascript, but it turns out that it is not. It allows for certain
        // characters that are treated as syntax errors in Javascript. On top of that the .Net WCF
        // javascript deserializer expects the JSON strings in certain format for it deserialize them
        // correctly. All in all, we need to do some special encoding to transport JSON strings over the
        // network.
        //
        // See https://github.com/judofyr/timeless/commit/9212af0a8d2124b92a7e4c6355007e4b4b0ae71d
        if (!json) {
            return undefined;
        }
        JsonUtilities._escapableChars.lastIndex = 0;
        return JsonUtilities._escapableChars.test(json) ? json.replace(this._escapableChars, function (a) {
            var c = JsonUtilities._substibuteChars[a];
            return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
        }) : json;
    };
    /**
     * The list of characters that need to be escaped and their substitute characters
     */
    /* tslint:disable:max-line-length */
    JsonUtilities._escapableChars = /[\\\"\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
    /* tslint:enable:max-line-length */
    JsonUtilities._substibuteChars = {
        '\b': '\\b',
        '\t': '\\t',
        '\n': '\\n',
        '\f': '\\f',
        '\r': '\\r',
        '"': '\\"',
        '\'': '\\\'',
        '\\': '\\\\'
    };
    return JsonUtilities;
}());
/* harmony default export */ __webpack_exports__["default"] = (JsonUtilities);


/***/ }),

/***/ "loEg":
/*!************************************************************!*\
  !*** ./lib/serviceScope/provider/RandomNumberGenerator.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ServiceKey__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ServiceKey */ "XxFD");

/**
 * This is the default implementation of {@link IRandomNumberGenerator} that simply
 * calls Math.random().
 *
 * @public
 */
var RandomNumberGenerator = /** @class */ (function () {
    function RandomNumberGenerator(serviceScope) {
        // (this constructor is currently unused, but it is required by the
        // ServiceKey.create() contract)
    }
    /** {@inheritDoc IRandomNumberGenerator.generate} */
    RandomNumberGenerator.prototype.generate = function () {
        return Math.random();
    };
    /**
     * The service key for IRandomNumberGenerator.
     */
    RandomNumberGenerator.serviceKey = _ServiceKey__WEBPACK_IMPORTED_MODULE_0__["default"].create('sp-core-library:RandomNumberGenerator', RandomNumberGenerator);
    return RandomNumberGenerator;
}());
/* harmony default export */ __webpack_exports__["default"] = (RandomNumberGenerator);


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: _BrowserDetection, DisplayMode, _ClientManifestData, Guid, JsonUtilities, Text, Version, Validate, UrlUtilities, UrlQueryParameterCollection, TimeProvider, RandomNumberGenerator, ServiceKey, ServiceScope, Session, Environment, EnvironmentType, _SPFlight, _SPKillSwitch, SPError, Log, SPEvent, SPEventArgs, _SPEventManager, Event, EventArgs, _DeferredClass, _BrowserUtilities, _Envoy, _ServiceKeys */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return Event; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventArgs", function() { return EventArgs; });
/* harmony import */ var _BrowserDetection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BrowserDetection */ "yDiH");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_BrowserDetection", function() { return _BrowserDetection__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _DisplayMode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DisplayMode */ "FtfD");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayMode", function() { return _DisplayMode__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _ClientManifestData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ClientManifestData */ "Y40n");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ClientManifestData", function() { return _ClientManifestData__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _Guid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Guid */ "UCHU");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Guid", function() { return _Guid__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _JsonUtilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./JsonUtilities */ "lGl9");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonUtilities", function() { return _JsonUtilities__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Text */ "OFYJ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _Text__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _Version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Version */ "4Ndb");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Version", function() { return _Version__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Validate", function() { return _Validate__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _url_UrlUtilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./url/UrlUtilities */ "Btg7");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UrlUtilities", function() { return _url_UrlUtilities__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _url_UrlQueryParameterCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./url/UrlQueryParameterCollection */ "5cYQ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UrlQueryParameterCollection", function() { return _url_UrlQueryParameterCollection__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _serviceScope_provider_TimeProvider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./serviceScope/provider/TimeProvider */ "o07N");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TimeProvider", function() { return _serviceScope_provider_TimeProvider__WEBPACK_IMPORTED_MODULE_10__["default"]; });

/* harmony import */ var _serviceScope_provider_RandomNumberGenerator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./serviceScope/provider/RandomNumberGenerator */ "loEg");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RandomNumberGenerator", function() { return _serviceScope_provider_RandomNumberGenerator__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _serviceScope_ServiceKey__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./serviceScope/ServiceKey */ "XxFD");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServiceKey", function() { return _serviceScope_ServiceKey__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _serviceScope_ServiceScope__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./serviceScope/ServiceScope */ "bd35");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServiceScope", function() { return _serviceScope_ServiceScope__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _Session__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Session */ "jjO0");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Session", function() { return _Session__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/* harmony import */ var _Environment__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Environment */ "uB+2");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _Environment__WEBPACK_IMPORTED_MODULE_15__["default"]; });

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

/* harmony import */ var _SPFlight__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SPFlight */ "JJKV");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPFlight", function() { return _SPFlight__WEBPACK_IMPORTED_MODULE_16__["default"]; });

/* harmony import */ var _SPKillSwitch__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./SPKillSwitch */ "2Wio");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPKillSwitch", function() { return _SPKillSwitch__WEBPACK_IMPORTED_MODULE_17__["default"]; });

/* harmony import */ var _SPError__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./SPError */ "ZY2i");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPError", function() { return _SPError__WEBPACK_IMPORTED_MODULE_18__["default"]; });

/* harmony import */ var _log_Log__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./log/Log */ "gLQp");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Log", function() { return _log_Log__WEBPACK_IMPORTED_MODULE_19__["default"]; });

/* harmony import */ var _events_SPEvent__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./events/SPEvent */ "6T9R");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPEvent", function() { return _events_SPEvent__WEBPACK_IMPORTED_MODULE_20__["default"]; });

/* harmony import */ var _events_SPEventArgs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./events/SPEventArgs */ "BHcV");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPEventArgs", function() { return _events_SPEventArgs__WEBPACK_IMPORTED_MODULE_21__["default"]; });

/* harmony import */ var _events_SPEventManager__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./events/SPEventManager */ "kYSd");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPEventManager", function() { return _events_SPEventManager__WEBPACK_IMPORTED_MODULE_22__["default"]; });

/* harmony import */ var _deferredClass_DeferredClass__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./deferredClass/DeferredClass */ "KfQ9");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_DeferredClass", function() { return _deferredClass_DeferredClass__WEBPACK_IMPORTED_MODULE_23__["default"]; });

/* harmony import */ var _BrowserUtilities__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./BrowserUtilities */ "Qn+G");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_BrowserUtilities", function() { return _BrowserUtilities__WEBPACK_IMPORTED_MODULE_24__["BrowserUtilities"]; });

/* harmony import */ var _envoy_Envoy__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./envoy/Envoy */ "DXUK");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_Envoy", function() { return _envoy_Envoy__WEBPACK_IMPORTED_MODULE_25__["Envoy"]; });

/* harmony import */ var _serviceScope_serviceKeys_ServiceKeys__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./serviceScope/serviceKeys/ServiceKeys */ "PYTr");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ServiceKeys", function() { return _serviceScope_serviceKeys_ServiceKeys__WEBPACK_IMPORTED_MODULE_26__["ServiceKeys"]; });

/**
 * SharePoint Framework core libraries.
 *
 * @remarks
 * This package provides a foundation of core classes that ensure a consistent character
 * across all the other SharePoint Framework APIs.  Because this package is a dependency
 * of every other package, its design prioritizes small code size and broad applicability,
 * versus flexibility or richness of features.
 *
 * @packagedocumentation
 */
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();




















// Events



// Backwards compatibility for bundles that referenced the originally shipped names
// "Event" and "EventArgs" (which turned out to conflict with the DOM API).


/**
 * DO NOT USE THIS DEFINITION.
 * @remarks
 * This is a backwards compatibility shim for legacy third-party bundles that imported the
 * old "Event" class.  It was renamed to solve a naming conflict with the brower DOM "Event".
 * @internal @preapproved
 * @deprecated Use the SPEvent class instead.
 */
var Event = /** @class */ (function (_super) {
    __extends(Event, _super);
    function Event() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Event;
}(_events_SPEvent__WEBPACK_IMPORTED_MODULE_20__["default"]));

/**
 * DO NOT USE THIS DEFINITION.
 * @remarks
 * This is a backwards compatibility shim for legacy third-party bundles that imported the
 * old "EventArgs" class.  It was renamed to solve a naming conflict with the brower DOM "Event".
 * @internal @preapproved
 * @deprecated Use the SPEvent class instead.
 */
var EventArgs = /** @class */ (function (_super) {
    __extends(EventArgs, _super);
    function EventArgs() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return EventArgs;
}(_events_SPEventArgs__WEBPACK_IMPORTED_MODULE_21__["default"]));







/***/ }),

/***/ "o07N":
/*!***************************************************!*\
  !*** ./lib/serviceScope/provider/TimeProvider.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ServiceKey__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ServiceKey */ "XxFD");

/**
 * This is the default implementation of {@link ITimeProvider} that simply
 * calls the real browser APIs.
 *
 * @public
 */
var TimeProvider = /** @class */ (function () {
    function TimeProvider(serviceScope) {
        // (this constructor is currently unused, but it is required by the
        // ServiceKey.create() contract)
    }
    /** {@inheritDoc ITimeProvider.getDate} */
    TimeProvider.prototype.getDate = function () {
        return new Date();
    };
    /** {@inheritDoc ITimeProvider.getTimestamp} */
    TimeProvider.prototype.getTimestamp = function () {
        return performance.now();
    };
    /**
     * The service key for ITimeProvider.
     */
    TimeProvider.serviceKey = _ServiceKey__WEBPACK_IMPORTED_MODULE_0__["default"].create('sp-core-library:TimeProvider', TimeProvider);
    return TimeProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (TimeProvider);


/***/ }),

/***/ "uB+2":
/*!****************************!*\
  !*** ./lib/Environment.js ***!
  \****************************/
/*! exports provided: EnvironmentType, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EnvironmentType", function() { return EnvironmentType; });
/* harmony import */ var _Validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Validate */ "wAtz");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");


/**
 * Indicates the general type of environment where the SharePoint Framework is running.
 *
 * @remarks
 * This enum is used by the {@link Environment."type"} property.  It provides a way to distinguish
 * environments where certain functionality may be limited or disabled.
 *
 * @public
 */
var EnvironmentType;
(function (EnvironmentType) {
    /**
     * Indicates that the SharePoint Framework is running inside a test harness, e.g. a unit test.
     * There may be no user interaction at all, and network access in general may be disabled.
     */
    EnvironmentType[EnvironmentType["Test"] = 0] = "Test";
    /**
     * Indicates that the SharePoint Framework is running on a page from a "localhost" web server,
     * for example the SharePoint Workbench when hosted via "gulp serve".  SharePoint REST API calls
     * will not be available, and in general network access may not authenticate properly.
     * Certain page context information may be using mock values for testing.
     */
    EnvironmentType[EnvironmentType["Local"] = 1] = "Local";
    /**
     * Indicates that the SharePoint Framework is running on a modern SharePoint web page,
     * with full framework functionality.  This is the normal usage scenario.
     */
    EnvironmentType[EnvironmentType["SharePoint"] = 2] = "SharePoint";
    /**
     * Indicates that the framework was hosted by a classic server-rendered SharePoint page.
     * Some functionality may be limited, e.g. various extensibility APIs may not be supported.
     */
    EnvironmentType[EnvironmentType["ClassicSharePoint"] = 3] = "ClassicSharePoint";
})(EnvironmentType || (EnvironmentType = {}));
/**
 * Information about the system environment where the SharePoint Framework is running.
 * @public
 */
var Environment = /** @class */ (function () {
    function Environment() {
    }
    /**
     * This is called once by the system during startup to initialize the Environment object.
     * @internal
     */
    Environment._initialize = function (data) {
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(data, 'data');
        Environment._type = data.type;
        _Validate__WEBPACK_IMPORTED_MODULE_0__["default"].isNotNullOrUndefined(Environment._type, 'environmentType');
        if (!EnvironmentType.hasOwnProperty(data.type.toString())) {
            throw new Error(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].invalidEnvironmentTypeError);
        }
    };
    Object.defineProperty(Environment, "type", {
        /**
         * Indicates the general type of environment where the SharePoint Framework is running.
         */
        get: function () {
            return this._type;
        },
        enumerable: true,
        configurable: true
    });
    return Environment;
}());
/* harmony default export */ __webpack_exports__["default"] = (Environment);


/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "wAtz":
/*!*************************!*\
  !*** ./lib/Validate.js ***!
  \*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Text */ "OFYJ");
/* harmony import */ var _SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPCoreLibraryStrings.resx */ "480N");


/**
 * Performs common validation tests for properties and function parameters.
 *
 * @remarks
 *
 * This class implements provides a standard way to validate properties and function parameters.
 * Unlike debug assertions, Validate checks are always performed and will always throw an error,
 * even in a production release.  As such, be careful not to overuse these checks in a way
 * that might impact performance.
 *
 * @public
 */
var Validate = /** @class */ (function () {
    function Validate() {
    }
    /**
     * Throws an exception if the specified value is not true.
     * @param value - the value to check
     * @param variableName - the program variable name, which will be mentioned in the error message
     */
    Validate.isTrue = function (value, variableName) {
        if (!value) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].isFalseValidateError, variableName));
        }
    };
    /**
     * Throws an exception if the specified value is null or undefined.
     * @param value - the value to check
     * @param variableName - the program variable name, which will be mentioned in the error message
     */
    /* tslint:disable:no-any */
    Validate.isNotNullOrUndefined = function (value, variableName) {
        /* tslint:enable:no-any */
        /* tslint:disable:no-null-keyword */
        if (value === null) {
            /* tslint:enable:no-null-keyword */
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].isNullValidateError, variableName));
        }
        if (value === undefined) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefinedValidateError, variableName));
        }
    };
    /**
     * Throws an exception if the specified string is null, undefined, or an empty string.
     * @param value - the value to check
     * @param variableName - the program variable name, which will be mentioned in the error message
     */
    Validate.isNonemptyString = function (value, variableName) {
        Validate.isNotNullOrUndefined(value, variableName);
        if (!value || value && value.length === 0) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].isEmptyStringValidateError, variableName));
        }
    };
    /**
     * Throws an exception if the specified object has been disposed.
     * @param value - the value to check
     * @param className - the class name, which will be mentioned in the error message
     */
    Validate.isNotDisposed = function (value, className) {
        if (value.isDisposed) {
            throw new Error(_Text__WEBPACK_IMPORTED_MODULE_0__["default"].format(_SPCoreLibraryStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].isDisposedValidateError, className));
        }
    };
    return Validate;
}());
/* harmony default export */ __webpack_exports__["default"] = (Validate);
/*
  Internal notes:
  - We will improve the exception and localization of error messages in VSO #163788
  - Do not add validation algorithms (e.g. isZipCode()) to this file; it should only
    provide basic checks similar to Assert
*/


/***/ }),

/***/ "yDiH":
/*!*********************************!*\
  !*** ./lib/BrowserDetection.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Version */ "4Ndb");

/**
 * Provides with information from the browser.
 * @internal
 */
var BrowserDetection = /** @class */ (function () {
    function BrowserDetection() {
    }
    /**
     * Returns information from the browser, calculated from the user agent.
     *
     * @param userAgent - Optional. If provided, it will calculate the data from the input parameter,
     *                      instead of the user agent from the browser.
     * @returns Browser information, with browser and OS data.
     */
    BrowserDetection.getBrowserInformation = function (userAgent) {
        var agent = userAgent || BrowserDetection.getUserAgent();
        return BrowserDetection.buildBrowserInformation(agent);
    };
    BrowserDetection.getUserAgent = function () {
        return (window && window.navigator && navigator.userAgent) || '';
    };
    BrowserDetection.buildBrowserInformation = function (userAgent) {
        var agent = userAgent.toLowerCase();
        var browserInfo = {
            browser: 0 /* Other */,
            browserVersion: undefined,
            os: 0 /* Other */,
            osVersion: undefined,
            userAgent: userAgent
        };
        browserInfo = BrowserDetection.fillBrowser(browserInfo, agent);
        browserInfo = BrowserDetection.fillOS(browserInfo, agent);
        return browserInfo;
    };
    BrowserDetection.fillBrowser = function (browserInfo, userAgent) {
        var browser = 0 /* Other */;
        var browserVersion = undefined;
        // Fill the values here
        var match;
        if (match = /msie (\d+)([\d.]*)/.exec(userAgent)) {
            // IE <= 10 has something like "MSIE 9" in the user agent.
            // This is also what newer versions do in compatibility mode.
            browser = 4 /* IE */;
        }
        else if (match = /trident.*rv:(\d+)([\d.]*)/.exec(userAgent)) {
            // This is IE 11. Sample user agent contains:
            // Trident/7.0; other stuff... rv:11.0
            browser = 4 /* IE */;
        }
        else if (match = /edge\/(\d+)([\d.]*)/.exec(userAgent)) {
            // This is Edge (it pretends to be Chrome and Safari).
            browser = 2 /* Edge */;
        }
        else if (match = /edg\/(\d+)([\d.]*)/.exec(userAgent)) {
            // This is Edge Chromium.
            browser = 6 /* EdgeChromium */;
        }
        else if (match = /(?:firefox|fxios)\/(\d+)([\d.]*)/.exec(userAgent)) {
            browser = 3 /* Firefox */;
        }
        else if (match = /(?:chrome|crios)\/(\d+)([\d.]*)/.exec(userAgent)) {
            // Note: lots of random browsers say they're Chrome and will end up in this bucket
            browser = 1 /* Chrome */;
        }
        else if (match = /safari\/(\d+)/.exec(userAgent)) {
            browser = 5 /* Safari */;
            match = /version\/(\d+)([\d.]*)/.exec(userAgent);
        }
        // Some other browser categories:
        //   IE Mobile: /iemobile\/(\d+)/
        //   IE Mobile in desktop mode: contains WPDesktop; get version from Trident version
        //   Opera (currently goes into Chrome bucket): /opr\/(\d+)/
        // Parse the captured version number for user's browser.
        if (match) {
            var browserMajor = parseInt(match[1], 10) || 0;
            var browserMinor = '0';
            var browserMinorVersion = match[2];
            if (browserMinorVersion) {
                var minorStart = browserMinorVersion.indexOf('.');
                if (minorStart >= 0 && minorStart < browserMinorVersion.length - 1) {
                    browserMinor = browserMinorVersion.substr(minorStart + 1);
                }
            }
            browserVersion = _Version__WEBPACK_IMPORTED_MODULE_0__["default"].parse(browserMajor + "." + browserMinor);
        }
        browserInfo.browser = browser;
        browserInfo.browserVersion = browserVersion;
        return browserInfo;
    };
    BrowserDetection.fillOS = function (browserInfo, userAgent) {
        var os = 0 /* Other */;
        var osVersion = undefined;
        // OS versions comes first as some UserAgents override the version for mismatching Windows versions (7, 8.1)
        var osVersionMatch = /[\s\(](os|os x|windows phone|windows nt|android) ([\d._]+)/.exec(userAgent);
        osVersion = osVersionMatch ? osVersionMatch[2] : undefined;
        // Parse device which gives hints about os / mobile state.
        // Windows Phone IE sometimes pretends to be Android, so explicitly check for Windows Phone first.
        // (wpdesktop is used by Windows Phone in desktop mode.)
        var deviceMatch = userAgent.match(/windows phone|wpdesktop/) || userAgent.match(/ipad|iphone|ipod|android/);
        if (deviceMatch) {
            var device = deviceMatch[0];
            if (device === 'windows phone' || device === 'wpdesktop') {
                os = 6 /* WindowsPhone */;
            }
            if (device === 'android') {
                os = 1 /* Android */;
            }
            if (device === 'ipad' || device === 'ipod' || device === 'iphone') {
                os = 2 /* IOS */;
            }
        }
        else {
            if (userAgent.indexOf('macintosh') !== -1) {
                os = 4 /* Mac */;
            }
            if (userAgent.indexOf('windows nt') !== -1) {
                os = 5 /* Windows */;
            }
            if (/(windows 8\.1|windows nt 6\.3)/.test(userAgent)) {
                os = 5 /* Windows */;
                osVersion = '8.1';
            }
            if (userAgent.indexOf('windows nt 10') !== -1) {
                os = 5 /* Windows */;
                osVersion = '10';
            }
            if (userAgent.indexOf('windows nt 6.1') !== -1) {
                os = 5 /* Windows */;
                osVersion = '7';
            }
        }
        browserInfo.os = os;
        browserInfo.osVersion = osVersion;
        return browserInfo;
    };
    return BrowserDetection;
}());
/* harmony default export */ __webpack_exports__["default"] = (BrowserDetection);


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/sp-lodash-subset":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-core-library_en-us.js.map


define("78359e4b-07c2-43c6-8d0b-d060b4d577e8_1.10.0", ["@microsoft/sp-lodash-subset","@microsoft/sp-core-library"], function(__WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "7rFx":
/*!*****************************!*\
  !*** ./lib/Api/LogEntry.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _LogFeature__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LogFeature */ "QHY3");
/* harmony import */ var _LogType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LogType */ "FSio");
// Copyright (c) Microsoft. All rights reserved.


/**
 * Represents a Log entry
 *
 * @internal
 */
var LogEntry = /** @class */ (function () {
    /**
     * Initializes a new instance of LogEntry
     * @param moduleName - the name of the module
     * @param logFeature - the name of the feature
     * @param logType - the log type
     * @param logProperties - optional property bag
     */
    function LogEntry(moduleName, logFeature, logType, logProperties, isIntentional) {
        if (logFeature === void 0) { logFeature = _LogFeature__WEBPACK_IMPORTED_MODULE_0__["default"].None; }
        if (logType === void 0) { logType = _LogType__WEBPACK_IMPORTED_MODULE_1__["default"].Trace; }
        if (moduleName) {
            this.moduleName = moduleName;
            this.logFeature = logFeature;
            this.logType = logType;
            this.logProperties = logProperties;
            this.isIntentional = isIntentional;
        }
        else {
            throw new Error('moduleName is invalid');
        }
    }
    /**
     * convert the log entry to string
     * @returns the serialized log entry
     */
    LogEntry.prototype.toString = function () {
        var serializedLogProps = undefined;
        if (this.logProperties) {
            try {
                serializedLogProps = JSON.stringify(this.logProperties);
            }
            catch (e) {
                console.log('Error happens in toString():' + e);
            }
        }
        return this.moduleName + " | " + this.logFeature + " | " + this.logType + " | " + serializedLogProps;
    };
    return LogEntry;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogEntry);


/***/ }),

/***/ "AhqE":
/*!***********************************!*\
  !*** ./lib/Api/ExecutionQueue.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */
/**
 * ExecutionQueue allows multiple handlers to be processed in real time or deferred.
 * @internal
 */
var ExecutionQueue = /** @class */ (function () {
    function ExecutionQueue() {
        this._shouldExecuteInRealTime = false;
        this._handlers = {}; // tslint:disable-line:typedef
        this._executionEntries = [];
    }
    Object.defineProperty(ExecutionQueue.prototype, "shouldExecuteInRealTime", {
        /**
         * Determines if the added execution entries should be processed in real time.
         * If this is set to true, a stack with entries will not be saved.
         */
        get: function () {
            return this._shouldExecuteInRealTime;
        },
        /**
         * Sets the behavior for this execution stack.
         * When set to true, all entries on stack will be processed and future entries
         * will be executed in real time.
         * When set to false, future entries will be saved in the execution stack for
         * later processing.
         */
        set: function (executeInRealTime) {
            this._shouldExecuteInRealTime = executeInRealTime;
            if (this._shouldExecuteInRealTime) {
                this.flush();
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Registers an external handler to collection for delayed asyncronous processing.
     * Handlers are registered once. If handler is already registered, it does nothing.
     */
    ExecutionQueue.prototype.addHandler = function (key, handler) {
        if (this._containsHandler(key, handler)) {
            return;
        }
        this._initializeHandlerArrayForKey(key);
        var handlers = this._handlers[key]; // tslint:disable-line:no-any
        if (handlers.indexOf(handler) === -1) {
            handlers.push(handler);
        }
    };
    /**
     * Execution Entry registration for delayed asyncronous processing.
     */
    ExecutionQueue.prototype.addExecutionEntry = function (key) {
        var args = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            args[_i - 1] = arguments[_i];
        }
        Object.freeze(args);
        if (this._shouldExecuteInRealTime) {
            this._processExecutionEntry(key, args);
        }
        else {
            this._executionEntries.push({ key: key, args: args });
        }
    };
    /**
     * Removes an external executionEntry handler from collection for asyncronous event logging.
     * Logger is registered once.
     */
    ExecutionQueue.prototype.removeHandler = function (key, handler) {
        var index = this._handlers[key].indexOf(handler);
        if (index > -1) {
            this._handlers[key].splice(index, 1);
        }
    };
    /**
     * Reset function clears executionEntry handler collection for asyncronous event logging.
     * All recorded execution entries and handlers are purged.
     */
    ExecutionQueue.prototype.reset = function () {
        this._handlers = {};
        this._executionEntries = [];
    };
    /**
     * Flushes all the buffered execution entries.
     * All recorded execution entries are purged.
     */
    ExecutionQueue.prototype.flush = function () {
        this._processAllExecutionEntries();
        this._executionEntries = [];
    };
    ExecutionQueue.prototype._containsHandler = function (key, handler) {
        if (this._handlers[key] !== null && this._handlers[key] !== undefined) {
            return this._handlers[key].indexOf(handler) > -1;
        }
        return false;
    };
    ExecutionQueue.prototype._initializeHandlerArrayForKey = function (key) {
        if (this._handlers[key] === null || this._handlers[key] === undefined) {
            this._handlers[key] = [];
        }
    };
    ExecutionQueue.prototype._processAllExecutionEntries = function () {
        var _this = this;
        this._executionEntries.forEach(function (entry) {
            if (entry && _this._handlers[entry.key]) {
                try {
                    _this._handlers[entry.key].forEach(function (handler) {
                        handler.apply(_this, entry.args);
                    });
                }
                catch (e) {
                    console.error('failed to process execution entry:' + e.toString());
                }
            }
        });
    };
    ExecutionQueue.prototype._processExecutionEntry = function (key, args) {
        for (var i = 0; i < this._handlers[key].length; i++) {
            try {
                this._handlers[key][i].apply(this, args);
            }
            catch (e) {
                console.error('failed to process execution entry:' + e.toString());
            }
        }
    };
    return ExecutionQueue;
}());
/* harmony default export */ __webpack_exports__["default"] = (ExecutionQueue);


/***/ }),

/***/ "FSio":
/*!****************************!*\
  !*** ./lib/Api/LogType.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// Copyright (c) Microsoft. All rights reserved.
/**
 * Represents the supported log types
 *
 * @internal
 */
var LogType;
(function (LogType) {
    /**
     * Trace level log. Use this for logging diagnostics
     */
    LogType[LogType["Trace"] = 1] = "Trace";
    /**
     * Event level log. Use this for logging usage etc
     */
    LogType[LogType["Event"] = 2] = "Event";
    /**
     * Use for errors
     */
    LogType[LogType["Error"] = 3] = "Error";
})(LogType || (LogType = {}));
/* harmony default export */ __webpack_exports__["default"] = (LogType);


/***/ }),

/***/ "H9JW":
/*!**************************************!*\
  !*** ./lib/Api/Trace/TraceLogger.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _LogEvent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LogEvent */ "pPvZ");
/* harmony import */ var _LogLevel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../LogLevel */ "rG76");
/* harmony import */ var _DefaultTraceHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DefaultTraceHandler */ "SiB3");
/* harmony import */ var _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../LogManager/LogManager */ "cyTu");





/**
 * This is used to log traces of failed operations and debugging information.
 * @internal
 */
var TraceLogger = /** @class */ (function () {
    function TraceLogger() {
    }
    /**
     * Init function for the passed logger object
     *
     * @internal
     */
    TraceLogger._addHandler = function (logger) {
        TraceLogger._logManager.addHandler(logger.log);
        TraceLogger._logManager.processAll(logger.log);
        TraceLogger._verboseLogManager.addHandler(logger.verbose);
        TraceLogger._verboseLogManager.processAll(logger.verbose);
    };
    /**
     * Exception logging
     * This shoule be used whenever you want to log something that might in future help to debug failures.
     * The error parameter is the only required one and basically will be just converted to string and
     * logged to Debug stream (RealibilityLogs in SLAPI).
     * It will also be uploaded to the server immediately and not wait for next batch log upload.
     * If you don't specify second parameter:eventName
     * the event name for all errors logged that way will be same "CaughtError" with
     * appropriate prefix ("ModernPublish.CaughtError" etc.)
     * These two parameters "eventName and resultCode" are there to be used from Qos.
     * It is not encouraged to use them directly from ErrorHelper but if you do,
     * the log will be written with custom event name of following format:
     * <Workload>.<eventName>.<resultCode>.Failure, Workload is set in Telemetry settings.
     **/
    TraceLogger.logError = function (source, error, eventName, resultCode) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(error, 'error');
        this._log(source, error, eventName, true, resultCode);
    };
    /**
     * Exception logging intended to replace to logError.
     *
     * @remarks
     * Uses the `ILogErrorData` interface to prevent excessive undefined parameters
     * when calling this function.
     * This should be used whenever you want to log something that might in future help to
     * debug failures.
     * It will also be uploaded to the server immediately and not wait for next batch log upload.
     */
    TraceLogger.logErrorData = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.error, 'error');
        var errorInfo = data.logEntry ? data.logEntry.toString() : data.error;
        this._log(data.source, errorInfo, data.eventName, true, data.resultCode, data.serviceScope);
    };
    /**
     * Trace logging
     * The idea here is that verbose logs don't get uploaded to the server unless
     * a failure is logged using ErrorHelper.log method.
     * There is a circular buffer that holds last 50 verbose logs from all scenarios and
     * it is only flushed and uploaded in case a failure is logged.
     * That way whenever you get a failure event with message you also have all supportive verbose messages
     * you logged throughout your scenario execution (or other scenarios).
     * And hopefully that would help you get to the bottom of what exactly went wrong.
     * If no failure happens and your scenario succeeds, verbose logs will be just left in the buffer
     * and most likely overriden by next scenario that logs something verbose.
    **/
    TraceLogger.logVerbose = function (source, message, eventName) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(message, 'message');
        this._log(source, message, eventName, false, undefined);
    };
    /**
     * Verbose logging intended to replace to logVerbose.
     * The idea here is that verbose logs don't get uploaded to the server unless
     * a failure is logged using ErrorHelper.log method.
     * There is a circular buffer that holds last 50 verbose logs from all scenarios and
     * it is only flushed and uploaded in case a failure is logged.
     * That way whenever you get a failure event with message you also have all supportive verbose messages
     * you logged throughout your scenario execution (or other scenarios).
     * And hopefully that would help you get to the bottom of what exactly went wrong.
     * If no failure happens and your scenario succeeds, verbose logs will be just left in the buffer
     * and most likely overriden by next scenario that logs something verbose.
     */
    TraceLogger.logVerboseData = function (data) {
        var message = data.logEntry ? data.logEntry.toString() : data.message;
        this._log(data.source, message, data.eventName, false, undefined, data.serviceScope);
    };
    /**
     * Exception logging With LogEntry
     * error message should be packed into logProperties
     * LogType should be LogType.Error and LogProperties should have `{error:errorMessage}`
     * Do NOT add PII data!
     **/
    TraceLogger.logErrorWithLogEntry = function (source, logEntry, eventName, resultCode) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(source, 'source');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(logEntry, 'logEntry');
        this._log(source, logEntry.toString(), eventName, true, resultCode);
    };
    Object.defineProperty(TraceLogger, "shouldWriteToConsole", {
        /**
         * Indicates if the log entries should be output to the console.
         * This flag is set to true by default.
         */
        get: function () { return TraceLogger._shouldWriteToConsole; },
        /**
         * Toggles console output functionality.
         * Property can be chaged by remote caller.
         */
        set: function (shouldWrite) {
            if (TraceLogger._shouldWriteToConsole && !shouldWrite) {
                TraceLogger._logManager.removeHandler(TraceLogger._defaultLogger.log);
                TraceLogger._verboseLogManager.removeHandler(TraceLogger._defaultLogger.verbose);
            }
            else if (!TraceLogger._shouldWriteToConsole && shouldWrite) {
                TraceLogger._logManager.addHandler(TraceLogger._defaultLogger.log);
                TraceLogger._verboseLogManager.addHandler(TraceLogger._defaultLogger.verbose);
            }
            TraceLogger._shouldWriteToConsole = shouldWrite;
        },
        enumerable: true,
        configurable: true
    });
    /*
    * Trace logging with `LogEntry`
    * The same with above other than wrapped log into `logEntry`
    * Trace message should be packed into `logProperties`
    * `LogType` should be `LogType.Trace` and LogProperties should have something like `{errors:errorMessage}`
    * Do NOT add PII data!
    **/
    TraceLogger.logVerboseWithLogEntry = function (source, logEntry, eventName) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(logEntry, 'LogEntry');
        this._log(source, logEntry.toString(), eventName, false, undefined);
    };
    TraceLogger._log = function (source, data, eventName, isError, resultCode, serviceScope) {
        var enhancedEventName = this._addEventPrefix(source, eventName);
        var logEvent;
        if (isError) {
            logEvent = _LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(enhancedEventName, data, _LogLevel__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Error, serviceScope);
            TraceLogger._logManager.log({ data: data, eventName: logEvent.prefix, resultCode: resultCode });
        }
        else {
            logEvent = _LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(enhancedEventName, data.toString(), _LogLevel__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Verbose, serviceScope);
            TraceLogger._verboseLogManager.log({ data: data, eventName: logEvent.prefix });
        }
        if (TraceLogger.shouldWriteToConsole || ( true && !false)) {
            this._writeToConsole(logEvent, isError, resultCode);
        }
    };
    /*
    * EventName is:
    * sourceId.eventName or sourceId if eventName is not provided.
    */
    TraceLogger._addEventPrefix = function (source, eventName) {
        if (!eventName) {
            return source.id;
        }
        else {
            return source.id + "." + eventName;
        }
    };
    /*
    * The log message in console is:
    * `[eventName]: data`.
    */
    TraceLogger._writeToConsole = function (logEvent, isError, resultCode) {
        // @todo (SPPPLAT VSO#250083): This date should be a part of the logEvent.
        var errorString = logEvent.toString();
        if (resultCode) {
            errorString += ". resultCode: " + resultCode;
        }
        // Task 191596: only write to console when a condition is satisfied (e.g., a query parameter provided).
        if (isError) {
            console.error(errorString);
        }
        else {
            console.log(errorString);
        }
    };
    /**
     * Allows process trace log events.
     */
    TraceLogger._logManager = new _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_4__["default"]();
    /**
     * Allows process verbose trace log events.
     */
    TraceLogger._verboseLogManager = new _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_4__["default"]();
    TraceLogger._defaultLogger = new _DefaultTraceHandler__WEBPACK_IMPORTED_MODULE_3__["default"]();
    TraceLogger._shouldWriteToConsole = false;
    return TraceLogger;
}());
/* harmony default export */ __webpack_exports__["default"] = (TraceLogger);


/***/ }),

/***/ "O2hE":
/*!************************************************!*\
  !*** ./lib/Api/Engagement/EngagementLogger.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../LogManager/LogManager */ "cyTu");
/* harmony import */ var _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../DiagnosticsSettingsManager */ "ULMK");
/**
 * @copyright Microsoft Corporation.All rights reserved.
 * @file EngagementLogger.ts
 * EngagementLogger logger
 */


/**
 * Engagement logging
 * use *.Click for all the actions triggered by mouse, keyboard, or touch.
 * if you want to add more data or the action is not click but keydown.
 * Use extraData to log the type of action or use extraData to log details wrapped in LogEntry
 * @internal
 */
var EngagementLogger = /** @class */ (function () {
    function EngagementLogger() {
    }
    /**
     * Init function for the passed logger object
     */
    EngagementLogger._addHandler = function (logger) {
        EngagementLogger._handler = function (e) { logger.logData(e); };
        EngagementLogger._logManager.addHandler(EngagementLogger._handler);
    };
    /**
     * Starts processing logs in real time
     */
    EngagementLogger.startRealTimeProcessing = function () {
        if (!this._shouldProcessInRealTime) {
            EngagementLogger._logManager.processAll(EngagementLogger._handler);
            this._shouldProcessInRealTime = true;
        }
    };
    /**
    * Engagement logging
    *
    * @remarks
    * Use *.Click for all the actions triggered by mouse, keyboard, or touch.
    * tagName follows `<Workload>.controlName.actionName` pattern
    * For example, `{ name = "AddButton.Click" }`,
    * this logs `"<Workload>.AddButton.Click"` with default action triggered by mouse, keyboard, or touch.
    * `<Workload>` is set in Telemetry settings
    * `IEngagementData` interface is mapped to a set of enums for standardization of mapping.
    * Add new items to enum in order to register a new item specification.
    * SiteType is defined in SiteType enum
    * CurrentPage is defined in CurrentPage enum
    * Component is defined in Component enum
    * Feature is defined in Feature enum.
    */
    EngagementLogger.log = function (engagementData) {
        EngagementLogger._logEngagementData(engagementData);
    };
    /**
     * Engagement logging
     *
     * @remarks
     * Use *.Click for all the actions triggered by mouse, keyboard, or touch.
     * tagName follows `<Workload>.controlName.actionName` pattern
     * For example, `tagName = "AddButton.Click"`,
     * this logs `"<Workload>.AddButton.Click"` with default action triggered by mouse, keyboard, or touch.
     * `<Workload>` is set in Telemetry settings
     * Use extraData to log the type of action.
     * For example, `actionName = "Keydown"` and `tagName = "ModernPublish.AddButton.Click"`
     * this logs `"<Workload>.AddButton.Click"` with the extraData that it was selected using the Keydown
     */
    EngagementLogger.logEvent = function (tagName, actionName) {
        var logData = { name: tagName };
        if (actionName && actionName.length !== 0) {
            logData.extraData = { action: actionName };
        }
        EngagementLogger._logEngagementData(logData);
    };
    /**
     * Engagement logging with LogEntry
     *
     * @remarks
     * Here is an example:
     * ```
     * {"EngagementName":"SPPage.NavigationAction.SPPageQuickLaunchUpdate"`,
     * "Properties":"{\"message\":\"[NavigationAction] | SPPageQuickLaunchUpdate | 2 | null\"}",
     * "Duration":0,"LogType":0,
     * "ClientTime":1459357627444,"Source":"ClientV2Engagement"}
     * ```
     *
     * NavigationAction is moduleName in LogEntry, SPPageQuickLaunchUpdate is log feature name
     * In this example, SPPage is workload name which is set in Telemetry settings.
     * Do NOT add PII data!
     */
    EngagementLogger.logEventWithLogEntry = function (logEntry) {
        var logData = {
            isIntentional: logEntry.isIntentional,
            name: logEntry.moduleName + '.' + logEntry.logFeature,
            extraData: logEntry.logProperties
        };
        EngagementLogger._logEngagementData(logData, true);
    };
    EngagementLogger._logEngagementData = function (engagementData, isLogEntry) {
        if (isLogEntry === void 0) { isLogEntry = false; }
        if (!engagementData.name || engagementData.name.length === 0) {
            throw new Error('LogEntry is invalid');
        }
        EngagementLogger._checkValidTagName(engagementData, isLogEntry);
        EngagementLogger._addContextData(engagementData);
        EngagementLogger._logManager.log(engagementData);
    };
    // tagName should follow AppName.ControlName.ActionName pattern
    EngagementLogger._checkValidTagName = function (engagementData, isLogEntry) {
        if (isLogEntry === void 0) { isLogEntry = false; }
        if (!isLogEntry) {
            var tagNameRegex = /(\w+)\.(\w+).(\w+)/ig;
            if (tagNameRegex.test(engagementData.name) === false) {
                throw new Error(engagementData.name + " tagName does not follow AppName.ControlName.ActionName pattern");
            }
        }
    };
    EngagementLogger._addContextData = function (data) {
        if (_DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__["default"].isInitialized) {
            var _a = _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__["default"].settings, listId = _a.listId, listItemUniqueId = _a.listItemUniqueId, siteId = _a.siteId, webId = _a.webId;
            data.siteId = siteId;
            data.webId = webId;
            if (listId) {
                data.listId = listId;
                if (listItemUniqueId) {
                    data.docId = listItemUniqueId;
                }
            }
        }
    };
    EngagementLogger._logManager = new _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_0__["default"]();
    return EngagementLogger;
}());
/* harmony default export */ __webpack_exports__["default"] = (EngagementLogger);


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "QHY3":
/*!*******************************!*\
  !*** ./lib/Api/LogFeature.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @file LogFeature.ts
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 * Used for logging so you can filter logs by features.
 */
/**
 * @internal
 */
var LogFeature = /** @class */ (function () {
    function LogFeature() {
    }
    /* tslint:disable:variable-name */
    LogFeature.None = 'None';
    return LogFeature;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogFeature);


/***/ }),

/***/ "SiB3":
/*!**********************************************!*\
  !*** ./lib/Api/Trace/DefaultTraceHandler.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @copyright Microsoft Corporation.All rights reserved.
 * @file DefaultTraceHandler.ts
 */
/**
 * Default implementation for the Trace logger class.
 */
var DefaultTraceHandler = /** @class */ (function () {
    function DefaultTraceHandler() {
    }
    /**
     * Default implementation for log function.
     */
    DefaultTraceHandler.prototype.log = function (traceLogEvent) {
        if (true) {
            console.log("Error: " + traceLogEvent.data + ", " +
                ("Event Name: " + traceLogEvent.eventName + ", ") +
                ("Result Code: " + traceLogEvent.resultCode));
        }
    };
    /**
     * Default implementation for verbose function.
     */
    DefaultTraceHandler.prototype.verbose = function (verboseTraceEvent) {
        if (true) {
            console.log("Error: " + verboseTraceEvent.data + ", Event Name: " + verboseTraceEvent.eventName);
        }
    };
    return DefaultTraceHandler;
}());
/* harmony default export */ __webpack_exports__["default"] = (DefaultTraceHandler);


/***/ }),

/***/ "ULMK":
/*!*******************************************!*\
  !*** ./lib/DiagnosticsSettingsManager.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */


/**
 * TelemetrySettingsManager stores the configuration for Telemetry passed
 * down by the calling application during bootstrapping.
 *
 * @internal
 */
var DiagnosticsSettingsManager = /** @class */ (function () {
    function DiagnosticsSettingsManager() {
    }
    DiagnosticsSettingsManager.initialize = function (settings) {
        this.settings = Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__["cloneDeep"])(settings);
        this._initialized = true;
        this._normalizeContextIds();
    };
    DiagnosticsSettingsManager.updateSettings = function (settings) {
        this.settings = Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_1__["merge"])(this.settings, settings);
        this._normalizeContextIds();
    };
    Object.defineProperty(DiagnosticsSettingsManager, "isInitialized", {
        get: function () {
            return this._initialized;
        },
        enumerable: true,
        configurable: true
    });
    DiagnosticsSettingsManager._normalizeId = function (id) {
        var guid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(id);
        return guid ? guid.toString() : id;
    };
    DiagnosticsSettingsManager._normalizeContextIds = function () {
        this.settings.siteId = this._normalizeId(this.settings.siteId);
        this.settings.webId = this._normalizeId(this.settings.webId);
        this.settings.correlationId = this._normalizeId(this.settings.correlationId);
        if (this.settings.listId) {
            this.settings.listId = this._normalizeId(this.settings.listId);
            if (this.settings.listItemUniqueId) {
                this.settings.listItemUniqueId = this._normalizeId(this.settings.listItemUniqueId);
            }
        }
    };
    DiagnosticsSettingsManager._initialized = false;
    return DiagnosticsSettingsManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (DiagnosticsSettingsManager);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "YjAB":
/*!****************************!*\
  !*** ./lib/Diagnostics.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DiagnosticsSettingsManager */ "ULMK");
/* harmony import */ var _Api_Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Api/Trace/TraceLogger */ "H9JW");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */



/**
 * Diagnostics class initializes the diagnostics pipeline and connect to backend server.
 * Diagnostics contains a set of internal APIs that collects data and reports data via
 * the pipeline. The APIs consist of
 *  -- TraceLogger - for logging diagnostic information
 *
 * @internal
 */
var Diagnostics = /** @class */ (function () {
    function Diagnostics() {
    }
    /**
     * Initializes the diagnostics pipelines
     */
    Diagnostics.initialize = function (settings) {
        if (!Diagnostics._isInitialized) {
            _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(settings);
            _Api_Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_2__["default"].shouldWriteToConsole = settings.enableConsoleLog;
            _Api_Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_2__["default"]._addHandler({
                log: function (traceEvent) {
                    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Log"].info(traceEvent.eventName, "EventName:" + traceEvent.data.toString() + ", ResultCode: " + traceEvent.resultCode);
                },
                verbose: function (traceEvent) {
                    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Log"].verbose(traceEvent.eventName, traceEvent.data.toString());
                }
            });
            Diagnostics._isInitialized = true;
        }
    };
    Object.defineProperty(Diagnostics, "isInitialized", {
        /**
         * Returns true if diagnostics has been already initialized.
         */
        get: function () {
            return this._isInitialized;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Used to refresh the telemetry settings when they change from the application
     * (i.e. when an in-place navigation to a different site happens)
     * @param settings - the subset of the telemetry settings to be updated
     */
    Diagnostics.updateSettings = function (settings) {
        _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_1__["default"].updateSettings(settings);
    };
    Diagnostics._isInitialized = false;
    return Diagnostics;
}());
/* harmony default export */ __webpack_exports__["default"] = (Diagnostics);


/***/ }),

/***/ "cUGs":
/*!**********************************!*\
  !*** ./lib/Api/Qos/QosLogger.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ExecutionQueue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ExecutionQueue */ "AhqE");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */

/**
 * QosLogger allows multiple QosMonitors to be deferred processed.
 * @internal
 */
var QosLogger = /** @class */ (function () {
    function QosLogger() {
        this._qosEvents = new Map();
        this._deferExecutor = new _ExecutionQueue__WEBPACK_IMPORTED_MODULE_0__["default"]();
        this._shouldProcessInRealTime = false;
        this.initializeLogger();
    }
    Object.defineProperty(QosLogger, "instance", {
        get: function () {
            if (!this._instance) {
                this._instance = new QosLogger();
            }
            return this._instance;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosLogger.prototype, "shouldProcessInRealTime", {
        get: function () {
            return this._shouldProcessInRealTime;
        },
        set: function (processInRealTime) {
            this._shouldProcessInRealTime = processInRealTime;
            this._deferExecutor.shouldExecuteInRealTime = processInRealTime;
        },
        enumerable: true,
        configurable: true
    });
    QosLogger.prototype.setLogger = function (qosLogger) {
        this._qosLogger = qosLogger;
    };
    QosLogger.prototype.getQosEvent = function (key) {
        return this._qosEvents.get(key);
    };
    QosLogger.prototype.startQosMonitor = function (key, startData) {
        if (!this._qosEvents.has(key)) {
            this._deferExecutor.addExecutionEntry('start', key, startData);
        }
    };
    QosLogger.prototype.writeQosEndResult = function (key, endData) {
        this._deferExecutor.addExecutionEntry('end', key, endData);
    };
    QosLogger.prototype._startMonitor = function (key, event) {
        if (this._qosLogger) {
            this._qosEvents.set(key, new this._qosLogger(event)); /* tslint:disable-line:no-any */
        }
    };
    QosLogger.prototype._endMonitor = function (key, event) {
        if (this._qosEvents.has(key)) {
            this._qosEvents.get(key).end(event); /* tslint:disable-line:no-any */
            this._qosEvents.delete(key);
        }
    };
    /* tslint:disable-next-line:no-any typedef */
    QosLogger.prototype.initializeLogger = function () {
        var _this = this;
        var startHandler = function (key, e) { _this._startMonitor(key, e); }; /* tslint:disable-line:max-line-length typedef */
        var endHandler = function (key, e) { _this._endMonitor(key, e); }; /* tslint:disable-line:max-line-length typedef */
        this._deferExecutor.addHandler('start', startHandler);
        this._deferExecutor.addHandler('end', endHandler);
    };
    return QosLogger;
}());
/* harmony default export */ __webpack_exports__["default"] = (QosLogger);


/***/ }),

/***/ "cyTu":
/*!******************************************!*\
  !*** ./lib/Api/LogManager/LogManager.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _CircularBuffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircularBuffer */ "yF0L");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */

/**
 * LogManager allows multiple handlers to process log events.
 * It caches the latest 5000 log events. If a handler is just added, the
 * handler is able to get access to the cached events and all incoming events.
 * Dev-dashboard and potentially third-party can use it to get access to events.
 * @internal
 */
var LogManager = /** @class */ (function () {
    function LogManager(initialHandler) {
        this._shouldLogInRealTime = [];
        this._handlers = [];
        this._events = new _CircularBuffer__WEBPACK_IMPORTED_MODULE_0__["default"](LogManager._maxVerboseLog);
        if (initialHandler) {
            this.addHandler(initialHandler);
        }
    }
    Object.defineProperty(LogManager, "_maxVerboseLog", {
        get: function () {
            return 5000;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogManager.prototype, "events", {
        /**
         * Event list for delayed asynchronous processing.
         * Events are accumulated in CircularBuffer for processing later.
         */
        get: function () {
            return this._events;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Registers an external logger to logger collection for asynchronous event logging.
     * Logger is registered once.
     */
    LogManager.prototype.addHandler = function (handler) {
        if (!this._containsHandler(handler)) {
            this._handlers.push(handler);
            this._shouldLogInRealTime.push(false);
        }
    };
    /**
     * Event logging operation for delayed asynchronous processing.
     */
    LogManager.prototype.log = function (event) {
        Object.freeze(event);
        this._events.push(event);
        this._processLogEvent(event);
    };
    /**
     * Removes an external logger from logger collection for asynchronous event logging.
     * Logger is registered once.
     */
    LogManager.prototype.removeHandler = function (handler) {
        var index = this._handlers.indexOf(handler);
        if (index > -1) {
            this._handlers.splice(index, 1);
            this._shouldLogInRealTime.splice(index, 1);
        }
    };
    /**
     * Reset function clears logger collection for asynchronous event logging.
     * All recorded events are purged.
     */
    LogManager.prototype.reset = function () {
        this._handlers = [];
        this._shouldLogInRealTime = [];
        this._events.removeAll();
    };
    /**
     * Processes all the buffered events using the registered handler.
     */
    LogManager.prototype.processAll = function (handler) {
        if (this._handlers.indexOf(handler) > -1) {
            this._processAllEvents(handler);
        }
    };
    LogManager.prototype._containsHandler = function (handler) {
        for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) {
            var existingHandler = _a[_i];
            if (existingHandler === handler) {
                return true;
            }
        }
        return false;
    };
    LogManager.prototype._processAllEvents = function (handler) {
        this._events.forEach(function (event) {
            if (event) {
                try {
                    handler(event);
                }
                catch (e) {
                    console.error('failed to handle event:' + e.toString());
                }
            }
        });
        this._shouldLogInRealTime[this._handlers.indexOf(handler)] = true;
    };
    LogManager.prototype._processLogEvent = function (event) {
        for (var i = 0; i < this._handlers.length; i++) {
            if (this._shouldLogInRealTime[i] && event) {
                try {
                    this._handlers[i](event);
                }
                catch (e) {
                    console.error('failed to handle event:' + e.toString());
                }
            }
        }
    };
    return LogManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogManager);


/***/ }),

/***/ "j5uz":
/*!***********************************!*\
  !*** ./lib/Api/Qos/QosMonitor.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Trace/TraceLogger */ "H9JW");
/* harmony import */ var _QosLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./QosLogger */ "cUGs");
/* harmony import */ var _Engagement_EngagementLogger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engagement/EngagementLogger */ "O2hE");
/* harmony import */ var _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../DiagnosticsSettingsManager */ "ULMK");
// Copyright (c) Microsoft. All rights reserved.





/**
 * Qos logger
 * This class represents the Qos monitor APIs
 *
 * @preapproved @internal
 */
var QosMonitor = /** @class */ (function () {
    /**
   * Creates a QoS monitor (initializes it and logs the start event)
   * @param scenarioName	- Unique name of the QoS scenario
   * You will see start tag: SPPages.ScenarioName.Start
   * @param copyToEngagement - indicate whether this data should be used as Engagement as well.
   */
    function QosMonitor(scenarioName, copyToEngagement) {
        var _a;
        if (copyToEngagement === void 0) { copyToEngagement = false; }
        this._qosResultTypeValue = (_a = {},
            _a[0 /* Success */] = 'Success',
            _a[1 /* Failure */] = 'Failure',
            _a[2 /* ExpectedFailure */] = 'ExpectedFailure',
            _a);
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(scenarioName, 'scenarioName');
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].newGuid().toString();
        if (!this._isDebugSession() ||
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('2f038457-f3a3-40d4-8eb1-c9b4495f2419'), '10/15/2019', 'WEX_SkipNonShipQoSUploadStartEvents')) {
            _QosLogger__WEBPACK_IMPORTED_MODULE_2__["default"].instance.startQosMonitor(this._id, { name: scenarioName });
        }
        this._scenarioName = scenarioName;
        this._hasEnded = false;
        this._copyToEngagement = copyToEngagement;
    }
    QosMonitor.startRealTimeProcessing = function () {
        if (!_QosLogger__WEBPACK_IMPORTED_MODULE_2__["default"].instance.shouldProcessInRealTime) {
            this._shouldProcessInRealTime(true);
        }
    };
    /**
     * Only used in unit tests
     * @internal
     */
    QosMonitor._shouldProcessInRealTime = function (processInRealTime) {
        _QosLogger__WEBPACK_IMPORTED_MODULE_2__["default"].instance.shouldProcessInRealTime = processInRealTime;
    };
    Object.defineProperty(QosMonitor.prototype, "name", {
        get: function () {
            return this._scenarioName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosMonitor.prototype, "shortEventName", {
        get: function () {
            return 'Qos';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosMonitor.prototype, "resultCode", {
        get: function () {
            return this._endResultCode;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosMonitor.prototype, "resultType", {
        get: function () {
            /* tslint:disable-next-line:no-any */
            return this._endResult;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosMonitor.prototype, "extraData", {
        get: function () {
            return this._endExtraData;
        },
        set: function (value) {
            this._endExtraData = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(QosMonitor.prototype, "hasEnded", {
        get: function () {
            return this._hasEnded;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * QoS monitor ends with success
     * You will see success tag: SPPages.ScenarioName.Success
     */
    QosMonitor.prototype.writeSuccess = function (extraData) {
        this._writeQosEnd(0 /* Success */, undefined, undefined, extraData);
    };
    /**
     * QoS monitor ends with failure
     * You will see failure tag: SPPages.ScenarioName.<failuretag>.Failure.
     * <failuretag> will be filled with param tagName
     */
    QosMonitor.prototype.writeUnexpectedFailure = function (tagNameSuffix, ex, extraData) {
        if (tagNameSuffix === void 0) { tagNameSuffix = 'DefaultUnexpected'; }
        this._writeQosEnd(1 /* Failure */, tagNameSuffix, ex, extraData);
    };
    /*
     * QoS monitor ends with expected failure
     * You will see success tag: ModernPublish.RenderPublishPage.<failuretag>.ExpectedFailure.
     * <failuretag> will be filled with param tagName
     */
    QosMonitor.prototype.writeExpectedFailure = function (tagNameSuffix, ex, extraData) {
        if (tagNameSuffix === void 0) { tagNameSuffix = 'DefaultExpected'; }
        this._writeQosEnd(2 /* ExpectedFailure */, tagNameSuffix, ex, extraData);
    };
    QosMonitor.prototype._writeQosEnd = function (resultType, tagNameSuffix, ex, extraData) {
        if (!this._shouldSkip(resultType)) {
            var enableExtraDataSetter = !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(QosMonitor._isExtraDataSetterEnabledKSId, '9/11/2019', 'WPLoadExtraData');
            /* tslint:disable-next-line:no-any */
            var existingExtraData = enableExtraDataSetter ? this.extraData : undefined;
            if (_DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].isInitialized &&
                resultType !== 0 /* Success */) {
                var correlationId = _DiagnosticsSettingsManager__WEBPACK_IMPORTED_MODULE_4__["default"].settings.correlationId;
                if (!extraData) {
                    extraData = existingExtraData || {};
                }
                // Reuse the existing CorrelationId column for extraData
                extraData.CorrelationId = extraData.correlationId ||
                    extraData.CorrelationId ||
                    correlationId;
            }
            this._endResultCode = tagNameSuffix;
            this._endExtraData = extraData || existingExtraData;
            this._endResult = resultType;
            var endData = {
                resultCode: this._endResultCode,
                resultType: this._endResult,
                error: ex ? ex.message : undefined,
                extraData: this._endExtraData
            };
            _QosLogger__WEBPACK_IMPORTED_MODULE_2__["default"].instance.writeQosEndResult(this._id, endData);
            this._writeToEngagement();
        }
    };
    QosMonitor.prototype._isDebugSession = function () {
        return !!sessionStorage.getItem('spfx-debug');
    };
    QosMonitor.prototype._shouldSkip = function (result) {
        if (this._hasEnded && (this._endResult !== undefined)) {
            var message = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(QosMonitor.qosMonitorHasEndedErrorString, this.name, this._qosResultTypeValue[this._endResult], this._qosResultTypeValue[result]);
            if (this._endResult !== result) {
                _Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_1__["default"].logError(QosMonitor.logSource, new Error(message));
            }
            if (true) {
                _Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_1__["default"].logVerbose(QosMonitor.logSource, message, 'skipEnd');
            }
            return true;
        }
        else {
            this._hasEnded = true;
            return this._isDebugSession();
        }
    };
    QosMonitor.prototype._writeToEngagement = function () {
        if (this._shouldWriteToEngagement()) {
            // Engagement name requires certain format. Cannot just use QOS name.
            // Record Qos name in extra data 'qosName'
            var engagementData = {
                name: 'Spfx.Qos.ToEngagement',
                extraData: this.extraData || {}
            };
            // tslint:disable-next-line:no-string-literal
            engagementData.extraData['qosName'] = this.name;
            if (this.resultType) {
                // tslint:disable-next-line:no-string-literal
                engagementData.extraData['qosResultType'] = this._qosResultTypeValue[this.resultType];
            }
            if (this.resultCode) {
                // tslint:disable-next-line:no-string-literal
                engagementData.extraData['qosResultCode'] = this.resultCode;
            }
            _Engagement_EngagementLogger__WEBPACK_IMPORTED_MODULE_3__["default"].log(engagementData);
        }
    };
    QosMonitor.prototype._shouldWriteToEngagement = function () {
        var shouldWriteEngagement = this._copyToEngagement;
        return shouldWriteEngagement;
    };
    QosMonitor.logSource = {
        id: 'QosMonitor'
    };
    QosMonitor.qosMonitorHasEndedErrorString = 'QoS monitor \'{0}\' has ended with \'{1}\' already. Ignoring \'{2}\' tag.';
    QosMonitor._isExtraDataSetterEnabledKSId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('6d18e32c-abd5-40c1-8ce1-3fb551418901');
    return QosMonitor;
}());
/* harmony default export */ __webpack_exports__["default"] = (QosMonitor);


/***/ }),

/***/ "lxJ4":
/*!******************************!*\
  !*** ./lib/Api/LogSource.js ***!
  \******************************/
/*! exports provided: default, logSourceServiceKey */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logSourceServiceKey", function() { return logSourceServiceKey; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
// Copyright (c) Microsoft. All rights reserved.

/**
 * Represents a Log entry
 *
 * @internal
 */
var LogSource = /** @class */ (function () {
    function LogSource(id) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(id, 'id');
        this._id = id;
    }
    /**
     * Factory method to create an instance of the LogSource class
     * @returns a reference to an instance of the LogSource class
     */
    LogSource.create = function (id) {
        return new LogSource(id);
    };
    Object.defineProperty(LogSource.prototype, "id", {
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @returns if the LogSource is empty.
     */
    LogSource.prototype.isEmpty = function () {
        return this._id.length === 0;
    };
    return LogSource;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogSource);
/** @public */
var logSourceServiceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].createCustom('sp-client-base:LogSource', function (serviceScope) {
    return LogSource.create('');
});


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: _TraceLogger, _LogEntry, _LogFeature, _LogSource, _logSourceServiceKey, _LogType, _Diagnostics, _LogEvent, _LogLevel, _CircularBuffer, _LogManager, _EngagementLogger, _LogHandler, _QosMonitor, _QosLogger, _ExecutionQueue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Api_Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Api/Trace/TraceLogger */ "H9JW");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_TraceLogger", function() { return _Api_Trace_TraceLogger__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _Api_LogEntry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Api/LogEntry */ "7rFx");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogEntry", function() { return _Api_LogEntry__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _Api_LogFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Api/LogFeature */ "QHY3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogFeature", function() { return _Api_LogFeature__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _Api_LogSource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Api/LogSource */ "lxJ4");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogSource", function() { return _Api_LogSource__WEBPACK_IMPORTED_MODULE_3__["default"]; });

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

/* harmony import */ var _Api_LogType__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Api/LogType */ "FSio");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogType", function() { return _Api_LogType__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _Diagnostics__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Diagnostics */ "YjAB");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_Diagnostics", function() { return _Diagnostics__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _Api_Trace_LogEvent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Api/Trace/LogEvent */ "pPvZ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogEvent", function() { return _Api_Trace_LogEvent__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _Api_LogLevel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Api/LogLevel */ "rG76");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogLevel", function() { return _Api_LogLevel__WEBPACK_IMPORTED_MODULE_7__["LogLevel"]; });

/* harmony import */ var _Api_LogManager_CircularBuffer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Api/LogManager/CircularBuffer */ "yF0L");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CircularBuffer", function() { return _Api_LogManager_CircularBuffer__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _Api_LogManager_LogManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Api/LogManager/LogManager */ "cyTu");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogManager", function() { return _Api_LogManager_LogManager__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _Api_Engagement_EngagementLogger__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Api/Engagement/EngagementLogger */ "O2hE");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_EngagementLogger", function() { return _Api_Engagement_EngagementLogger__WEBPACK_IMPORTED_MODULE_10__["default"]; });

/* harmony import */ var _Api_Log_LogHandler__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Api/Log/LogHandler */ "qiD/");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LogHandler", function() { return _Api_Log_LogHandler__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _Api_Qos_QosMonitor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Api/Qos/QosMonitor */ "j5uz");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_QosMonitor", function() { return _Api_Qos_QosMonitor__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _Api_Qos_QosLogger__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Api/Qos/QosLogger */ "cUGs");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_QosLogger", function() { return _Api_Qos_QosLogger__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _Api_ExecutionQueue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Api/ExecutionQueue */ "AhqE");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ExecutionQueue", function() { return _Api_ExecutionQueue__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/**
 * This package defines the internal diagnostics tools for the SharePoint Framework,
 * including monitoring, trace, user engagement and performance logging.
 *
 * @packagedocumentation
 */

















/***/ }),

/***/ "pPvZ":
/*!***********************************!*\
  !*** ./lib/Api/Trace/LogEvent.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _LogSource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../LogSource */ "lxJ4");
/* harmony import */ var _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../LogManager/LogManager */ "cyTu");


/**
 * An object that represents one log event.
 * @internal
 */
var LogEvent = /** @class */ (function () {
    /**
     * Do not call this constructor directly. Use LogEvent.log instead.
     */
    function LogEvent(source, data, level, serviceScope) {
        this._validate(source, data);
        this._timestamp = new Date().getTime();
        this._scope = this._getScope(serviceScope);
        this._source = source.substr(0, this._maxSourceLength);
        this._setData(data);
        this._level = level;
        this._prefix = this._getPrefix();
    }
    /**
     * Use this method to log an event.
     *
     * @param source - source of the log event, e.g. class name of the source file
     * @param data - data of the log event
     * @param level - level of the log event
     * @param serviceScope - scope of the log event, e.g. component/web part
     */
    LogEvent.log = function (source, data, level, serviceScope) {
        var event = new LogEvent(source, data, level, serviceScope);
        LogEvent.logManager.log(event);
        return event;
    };
    LogEvent.prototype.toString = function () {
        var timedPrefix = "[" + this._timestamp + "][" + this._prefix + "]";
        if (this._message) {
            return timedPrefix + " " + this._message;
        }
        else if (this._error) {
            return timedPrefix + " " + this._error.toString();
        }
        else {
            return timedPrefix;
        }
    };
    Object.defineProperty(LogEvent.prototype, "timestamp", {
        get: function () {
            return this._timestamp;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "level", {
        get: function () {
            return this._level;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "prefix", {
        get: function () {
            return this._prefix;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "scope", {
        get: function () {
            return this._scope;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "source", {
        get: function () {
            return this._source;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "message", {
        get: function () {
            return this._message;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "error", {
        get: function () {
            return this._error;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "_maxSourceLength", {
        get: function () {
            return 30;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(LogEvent.prototype, "_maxMessageLength", {
        get: function () {
            return 150;
        },
        enumerable: true,
        configurable: true
    });
    LogEvent.prototype._validate = function (source, data) {
        if (!source) {
            throw new Error('source cannot be undefined or null for Logger');
        }
        if (!data) {
            throw new Error('data cannot be undefined or null');
        }
    };
    LogEvent.prototype._setData = function (data) {
        if (typeof data === 'string') {
            this._message = data.substr(0, this._maxMessageLength);
        }
        else if (data instanceof Error) {
            this._error = data;
        }
    };
    LogEvent.prototype._getPrefix = function () {
        var prefix = "" + this._source;
        if (this._scope && !this._scope.isEmpty()) {
            prefix = this._scope.id.substr(0, this._maxSourceLength) + "." + prefix;
        }
        return "" + prefix;
    };
    LogEvent.prototype._getScope = function (serviceScope) {
        var parentSource;
        if (serviceScope) {
            serviceScope.whenFinished(function () {
                parentSource = serviceScope.consume(_LogSource__WEBPACK_IMPORTED_MODULE_0__["logSourceServiceKey"]);
            });
        }
        return parentSource;
    };
    /**
     * Allows process log events.
     */
    LogEvent.logManager = new _LogManager_LogManager__WEBPACK_IMPORTED_MODULE_1__["default"]();
    return LogEvent;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogEvent);


/***/ }),

/***/ "qiD/":
/*!***********************************!*\
  !*** ./lib/Api/Log/LogHandler.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _LogLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../LogLevel */ "rG76");
/* harmony import */ var _Trace_LogEvent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Trace/LogEvent */ "pPvZ");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */


/**
 * This handler adapts the sp-core-library Log to use the internal telemetry.
 * @internal
 */
var LogHandler = /** @class */ (function () {
    function LogHandler() {
    }
    LogHandler.prototype.verbose = function (source, message, scope) {
        var event = _Trace_LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(source, message, _LogLevel__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Verbose, scope);
        if (true) {
            console.log(event.toString()); // tslint:disable-line:no-console
        }
    };
    LogHandler.prototype.info = function (source, message, scope) {
        var event = _Trace_LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(source, message, _LogLevel__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Info, scope);
        if (true) {
            console.info(event.toString()); // tslint:disable-line:no-console
        }
    };
    LogHandler.prototype.warn = function (source, message, scope) {
        var event = _Trace_LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(source, message, _LogLevel__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Warning, scope);
        if (true) {
            console.warn(event.toString()); // tslint:disable-line:no-console
        }
    };
    LogHandler.prototype.error = function (source, error, scope) {
        var event = _Trace_LogEvent__WEBPACK_IMPORTED_MODULE_1__["default"].log(source, error, _LogLevel__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Error, scope);
        if (true) {
            console.error(event.toString()); // tslint:disable-line:no-console
        }
    };
    return LogHandler;
}());
/* harmony default export */ __webpack_exports__["default"] = (LogHandler);


/***/ }),

/***/ "rG76":
/*!*****************************!*\
  !*** ./lib/Api/LogLevel.js ***!
  \*****************************/
/*! exports provided: LogLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LogLevel", function() { return LogLevel; });
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */
/**
 * LogLevel represents the level of a log event.
 * @internal
 */
var LogLevel;
(function (LogLevel) {
    /**
     * verbose event for debugging
     */
    LogLevel[LogLevel["Verbose"] = 1] = "Verbose";
    /**
     * Informational event
     */
    LogLevel[LogLevel["Info"] = 2] = "Info";
    /**
     * A warning
     */
    LogLevel[LogLevel["Warning"] = 3] = "Warning";
    /**
     * An error
     */
    LogLevel[LogLevel["Error"] = 4] = "Error";
})(LogLevel || (LogLevel = {}));


/***/ }),

/***/ "yF0L":
/*!**********************************************!*\
  !*** ./lib/Api/LogManager/CircularBuffer.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */
/**
 * @internal
 */
var CircularBuffer = /** @class */ (function () {
    function CircularBuffer(size) {
        /**
         * Index of the newest item in the buffer
         */
        this._head = -1;
        /**
         * The overall count of how many items have ever been added to the buffer.
         */
        this._count = 0;
        this._isIterating = false;
        if (size <= 0) {
            throw new Error('Size must be positive');
        }
        this._size = size;
        this._buffer = new Array(size);
    }
    Object.defineProperty(CircularBuffer.prototype, "count", {
        get: function () {
            return this._count;
        },
        enumerable: true,
        configurable: true
    });
    CircularBuffer.prototype.push = function (item) {
        this._ensureNotIterating();
        this._head++;
        this._count++;
        if (this._head === this._size) {
            this._head = 0;
        }
        this._buffer[this._head] = item;
    };
    CircularBuffer.prototype.forEach = function (handle) {
        if (this._count === 0) {
            return;
        }
        this._isIterating = true;
        try {
            var current = this._tail;
            // For-loop is prefered over while loop here to avoid possible infinite loop.
            for (var i = 0; i < this._size; i++) {
                handle(this._buffer[current]);
                if (current === this._head) {
                    // The newest item has been processed. End the loop.
                    break;
                }
                current = this._getNext(current);
            }
        }
        finally {
            this._isIterating = false;
        }
    };
    CircularBuffer.prototype.removeAll = function () {
        this._ensureNotIterating();
        this._head = -1;
        this._count = 0;
    };
    Object.defineProperty(CircularBuffer.prototype, "_tail", {
        /**
         * Index of the oldest item in the buffer
         */
        get: function () {
            if (this._isNotWrapped()) {
                return 0;
            }
            return this._getNext(this._head);
        },
        enumerable: true,
        configurable: true
    });
    CircularBuffer.prototype._isNotWrapped = function () {
        return this._count === (this._head + 1);
    };
    /**
     * The next index should be index + 1, unless it reaches
     * the end of the buffer and needs to rewind to 0.
     */
    CircularBuffer.prototype._getNext = function (index) {
        var nextIndex = index + 1;
        if (nextIndex === this._size) {
            nextIndex = 0;
        }
        return nextIndex;
    };
    CircularBuffer.prototype._ensureNotIterating = function () {
        if (this._isIterating) {
            throw new Error('Circular buffer cannot be modified during iteration');
        }
    };
    return CircularBuffer;
}());
/* harmony default export */ __webpack_exports__["default"] = (CircularBuffer);


/***/ })

/******/ })});;
//# sourceMappingURL=sp-diagnostics.js.map


define("cc2cc925-b5be-41bb-880a-f0f8030c6aff_5.1.55",[],function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=57)}([function(e,t,n){"use strict";function r(e,t){function n(){this.constructor=e}w(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function o(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}function a(e,t){return function(n,r){t(n,r,e)}}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(a,s)}u((r=r.apply(e,t||[])).next())})}function c(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&n[0]?o.return:n[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,n[1])).done)return a;switch(o=0,a&&(n=[2&n[0],a.value]),n[0]){case 0:case 1:a=n;break;case 4:return u.label++,{value:n[1],done:!1};case 5:u.label++,o=n[1],n=[0];continue;case 7:n=u.ops.pop(),u.trys.pop();continue;default:if(a=u.trys,!(a=a.length>0&&a[a.length-1])&&(6===n[0]||2===n[0])){u=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){u.label=n[1];break}if(6===n[0]&&u.label<a[1]){u.label=a[1],a=n;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(n);break}a[2]&&u.ops.pop(),u.trys.pop();continue}n=t.call(e,u)}catch(e){n=[6,e],o=0}finally{i=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var i,o,a,s,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s}function l(e,t){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}function d(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function p(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function f(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(p(arguments[t]));return e}function h(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),i=0,t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r}function m(e){return this instanceof m?(this.v=e,this):new m(e)}function v(e,t,n){function r(e){l[e]&&(c[e]=function(t){return new Promise(function(n,r){d.push([e,t,n,r])>1||i(e,t)})})}function i(e,t){try{o(l[e](t))}catch(e){u(d[0][3],e)}}function o(e){e.value instanceof m?Promise.resolve(e.value.v).then(a,s):u(d[0][2],e)}function a(e){i("next",e)}function s(e){i("throw",e)}function u(e,t){e(t),d.shift(),d.length&&i(d[0][0],d[0][1])}if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var c,l=n.apply(e,t||[]),d=[];return c={},r("next"),r("throw"),r("return"),c[Symbol.asyncIterator]=function(){return this},c}function _(e){function t(t,i){n[t]=e[t]?function(n){return(r=!r)?{value:m(e[t](n)),done:"return"===t}:i?i(n):n}:i}var n,r;return n={},t("next"),t("throw",function(e){throw e}),t("return"),n[Symbol.iterator]=function(){return this},n}function g(e){function t(t){r[t]=e[t]&&function(r){return new Promise(function(i,o){r=e[t](r),n(i,o,r.done,r.value)})}}function n(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof d?d(e):e[Symbol.iterator](),r={},t("next"),t("throw"),t("return"),r[Symbol.asyncIterator]=function(){return this},r)}function y(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function b(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function E(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.__extends=r,n.d(t,"__assign",function(){return S}),t.__rest=i,t.__decorate=o,t.__param=a,t.__metadata=s,t.__awaiter=u,t.__generator=c,t.__exportStar=l,t.__values=d,t.__read=p,t.__spread=f,t.__spreadArrays=h,t.__await=m,t.__asyncGenerator=v,t.__asyncDelegator=_,t.__asyncValues=g,t.__makeTemplateObject=y,t.__importStar=b,t.__importDefault=E;/*! *****************************************************************************
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.
***************************************************************************** */
var w=function(e,t){return(w=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},S=function(){return S=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},S.apply(this,arguments)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(7);t.default=r},function(e,t,n){"use strict";function r(e,t){return new this(e,s.ClonedEventType.Single,t)}function i(e){return new this(null,s.ClonedEventType.Single,e)}function o(e,t,n){var o=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return a.__extends(n,e),n.logData=t?r:i,n}(s.EventBase);return s.addEventProps(o.prototype,e,t||{},n),o}Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),s=n(4);t.createSingleEvent=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(2),t)},function(e,t,n){"use strict";function r(e,t,n,r){c.assign(e,t);var i={};for(var o in n)if(Object.prototype.hasOwnProperty.call(n,o)){var s=n[o],u=i[o]="number"==typeof s?{type:s}:s;u.definedInName=t.shortEventName,2===u.type&&(u.isMetric=!0)}e.metadata=r?a.__assign({},r.prototype.metadata,i):i}function i(e,t,n,r){var i=t[r];switch(typeof i){case"string":var a=e.cleanString(i,r);return void(void 0!==a&&(n[r]=a));case"undefined":return;case"object":return void(i&&Object.getPrototypeOf(i)===Object.prototype?n[r]=o(e,i,{}):n[r]=i);default:return void(n[r]=i)}}function o(e,t,n){for(var r=0,o=Object.keys(t);r<o.length;r++){i(e,t,n,o[r])}return n}Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),s=n(5),u=n(27),c=n(29),l=0;!function(e){e[e.Single=0]="Single",e[e.Start=1]="Start",e[e.End=2]="End"}(t.ClonedEventType||(t.ClonedEventType={}));var d;!function(e){e[e.NoParent=1]="NoParent"}(d=t.ValidationErrorType||(t.ValidationErrorType={}));!function(e){e[e.Consumer=0]="Consumer",e[e.ConsumerAnonymous=1]="ConsumerAnonymous",e[e.Business=2]="Business",e[e.BusinessAnonymous=3]="BusinessAnonymous",e[e.Unknown=4]="Unknown"}(t.AccountType||(t.AccountType={})),t.addEventProps=r;var p=new WeakMap,f=function(){function e(e,t,n){this.context={},this.validationErrors=0,this.data={},this.context=a.__assign({},this.addContext({})),this.id=l++,this.enabled=this._isEnabled(),n?this.parentId=n.id:this.requiresParent&&this._addValidationError(d.NoParent),this.startTime=e&&e.startTimeOverride||s.Manager.getTime(),this.vector=new u.CorrelationVector(n?n.vector:u.CorrelationVector.RootVector),e&&this._setData(e),this._logEvent(t)}return e.enabled=function(){return this.prototype._isEnabled()},e.isTypeOf=function(e){return e.eventName.indexOf(this.prototype.shortEventName+",")>=0},e.withManager=function(e){if(!e||e===s.Manager)return this;var t=p.get(e);t||(t=new WeakMap,p.set(e,t));var n=t.get(this);if(n)return n;var r=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return a.__extends(t,e),t}(this);return r.prototype.manager=e,n=r,t.set(this,n),n},e.withData=function(e){if(!e)return this;var t="function"!=typeof e?function(t){return a.__assign({},e,t)}:e;return function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return a.__extends(n,e),n.prototype.addData=function(n){var r=a.__assign({},n,t(n));return a.__assign({},r,e.prototype.addData.call(this,r))},n}(this)},e.withContext=function(e){if(!e)return this;var t="function"!=typeof e?function(t){return a.__assign({},e,t)}:e;return function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return a.__extends(n,e),n.prototype.addContext=function(n){var r=a.__assign({},n,t(n));return a.__assign({},r,e.prototype.addContext.call(this,r))},n}(this)},e.from=function(e){return e?this.withManager(e.prototype.manager).withContext(function(t){return e.prototype.addContext(t)}).withData(function(t){return e.prototype.addData(t)}):this},e.prototype.addContext=function(e){return o(this.manager,e,{})},e.prototype.addData=function(e){return e},e.prototype._isEnabled=function(){return!this.samplingFeature||s.Manager.isFeatureEnabled(this.samplingFeature)},e.prototype._setData=function(e){for(var t=this.data,n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];o in this.metadata&&i(this.manager,e,t,o)}c.assign(this.data,this.addData(this.data))},e.prototype._logEvent=function(e){this.manager.logEvent(this,e)},e.prototype._addValidationError=function(e){this.validationErrors=this.validationErrors|e,this.manager.logValidationError(this,e)},e}();t.EventBase=f;var h=f.prototype;h.eventName="EventBase,",h.shortEventName="EventBase",h.critical=!1,h.requiresParent=!0,h.manager=s.Manager},function(e,t,n){"use strict";function r(){return window.performance&&window.performance.timing&&window.performance.timing.navigationStart?new Date(window.performance.timing.navigationStart):new Date}function i(){return new s}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=n(26),s=function(){function e(){this._handlers=[],this._buffer=[],this._validationLoggers=[],this._featureEnablers=[]}return Object.defineProperty(e.prototype,"startDate",{get:function(){return r()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startTime",{get:function(){return this.startDate.getTime()},enumerable:!0,configurable:!0}),e.prototype.getTime=function(){return(new Date).getTime()},e.prototype.cleanString=function(e){return e},e.prototype.addLogHandler=function(e){var t=this._handlers,n=this._buffer;return t.push(e),n.slice()},e.prototype.removeLogHandler=function(e){for(var t=this._handlers,n=0;n<t.length;n++)if(t[n]===e){t.splice(n,1);break}},e.prototype.logEvent=function(e,t){var n=this._buffer,r=this._handlers,i=Object.freeze({data:a.deepCopy(e.data),context:o.__assign({},e.context),id:e.id,enabled:e.enabled,critical:e.critical,endTime:e.endTime,eventName:e.eventName,shortEventName:e.shortEventName,parentId:e.parentId,startTime:e.startTime,eventType:t,metadata:e.metadata,vector:e.vector,validationErrors:e.validationErrors,isEventTypePrefixingDisabled:e.isEventTypePrefixingDisabled});n.push(i),n.length>100&&(n.splice(1,1/0),0===r.length&&new Error("Logging buffer overflow hit before any logging handler was registered"));for(var s=0;s<r.length;s++)try{r[s](i)}catch(e){}},e.prototype.addValidationErrorLogger=function(e){this._validationLoggers.push(e)},e.prototype.removeValidationErrorLogger=function(e){var t=this._validationLoggers,n=t.indexOf(e);n>-1&&t.splice(n,1)},e.prototype.logValidationError=function(e,t){for(var n=this._validationLoggers,r=0,i=n;r<i.length;r++){var o=i[r];try{o(e,t)}catch(e){}}},e.prototype.isFeatureEnabled=function(e){for(var t=this._featureEnablers,n=0,r=t;n<r.length;n++){if((0,r[n])(e))return!0}return!1},e.prototype.addFeatureEnabler=function(e){this._featureEnablers.push(e)},e.prototype.removeFeatureEnabler=function(e){var t=this._featureEnablers,n=t.indexOf(e);n>-1&&t.splice(n,1)},e.prototype.getStack=function(){var e;try{var t=window;t.______ExpectedError______&&t.______ExpectedError______()}catch(t){e=t}return e&&e.stack||void 0},e}();t.createManager=i,t.Manager=function(){return"undefined"!=typeof window?window.ODSP_TELEMETRY_MANAGER=window.ODSP_TELEMETRY_MANAGER||i():"undefined"!=typeof self?self.ODSP_TELEMETRY_MANAGER=self.ODSP_TELEMETRY_MANAGER||i():i()}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure",e[e.ExpectedFailure=2]="ExpectedFailure"}(t.ResultTypeEnum||(t.ResultTypeEnum={}))},function(e,t,n){"use strict";function r(e,t){h.push({name:t,message:e})}function i(e,t,n){if(e&&!s(e)){for(var r,i=a(e),o=(e&&"object"==typeof e&&"stack"in e&&e.stack?e.stack:"");r=h.popOldest();)l.Verbose.logData(r);n&&n.eventName?c.QosError.logData({name:n.eventName,resultCode:n.resultCode,resultType:n.resultType,extraData:t||{},message:i,stack:o}):u.CaughtError.logData({extraData:t||{},message:i,stack:o})}}function o(e,t,n,r){i(e,void 0,{eventName:t,resultCode:n,resultType:r})}function a(e){var t="";return e&&("object"==typeof e&&"message"in e?t=e.message:"object"==typeof e&&"description"in e?t=e.description:"object"==typeof e?t=p.safeSerialize(e):e.toString&&(t=e.toString())),t}function s(e){return e===f||!!e&&"object"==typeof e&&"name"in e&&e.name===f||!!e&&"object"==typeof e&&"message"in e&&e.message===f}Object.defineProperty(t,"__esModule",{value:!0});var u=n(8),c=n(15),l=n(16),d=n(61),p=n(17),f="Canceled",h=new d.CircularBuffer(50);t.verbose=r,t.logError=i,t.log=o,t.getErrorMessage=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=n(33);t.CaughtError=r.createSingleEvent({eventName:"CaughtError,Trace,",shortEventName:"CaughtError",critical:!0,requiresParent:!1},{stack:1,extraData:4},i.Trace)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(66);t.Beacon=r.createPairedEvent({eventName:"Beacon,",shortEventName:"Beacon",requiresParent:!1},{name:1,status:1,success:3,retryCount:2,totalRetries:2,eventCount:2}),t.default=t.Beacon},function(e,t,n){"use strict";function r(e){window.setTimeout(function(){j.raise(H,L,{error:e})},0)}function i(){}function o(e,t){e._value=t,e._setState(H.isPromise(t)?P:I)}function a(e,t,n,r,i,o){return{exception:e,error:t,promise:n,handler:o,id:r,parent:i}}function s(e,t,n,r){var i=n._isException,o=n._errorId;return a(i?t:null,i?null:t,e,o,n,r)}function u(e,t,n){var r=n._isException,i=n._errorId;return _(e,i,r),a(r?t:null,r?null:t,e,i,n)}function c(e,t){var n=++N;return _(e,n),a(null,t,e,n)}function l(e,t){var n=++N;return _(e,n,!0),a(t,null,e,n)}function d(e,t,n){v(e,{c:t,e:n})}function p(e,t,n,r){e._value=t,m(e,t,n,r),e._setState(R)}function f(e,t){var n=e._value,r=e._listeners;if(r){e._listeners=null;var i,o;for(i=0,o=r.length;i<o;i++){var a=r[i],s=a.c,u=a.promise;if(u){try{u._setCompleteValue(s?s(n):n)}catch(e){u._setExceptionValue(e)}u._state!==P&&u._listeners&&t.push(u)}else q.prototype.done.call(e,s)}}}function h(e,t){var n=e._value,r=e._listeners;if(r){e._listeners=null;var i,o;for(i=0,o=r.length;i<o;i++){var a=r[i],u=a.e,c=a.promise;if(c){try{u?(u.handlesOnError||m(c,n,s,e,u),c._setCompleteValue(u(n))):c._setChainedErrorValue(n,e)}catch(e){c._setExceptionValue(e)}c._state!==P&&c._listeners&&t.push(c)}else V.prototype.done.call(e,null,u)}}}function m(e,t,n,r,i){t instanceof Error&&t.message===U||j.raise(H,L,n(e,t,r,i))}function v(e,t){var n=e._listeners;n?n.push(t):n=[t],e._listeners=n}function _(e,t,n){e._isException=n||!1,e._errorId=t}function g(e,t,n,r){e._value=t,m(e,t,n,r),e._setState(k)}function y(e,t){var n;n=H.isPromise(t)?P:M,e._value=t,e._setState(n)}function b(e,t,n){var r=new z(e);return v(e,{promise:r,c:t,e:n}),r}function E(e){var t;return new H(function(n){t=window.setTimeout(n,e)},function(){t&&window.clearTimeout(t)})}function w(e,t){var n=function(){t.cancel()},r=function(){e.cancel()};return e.then(n),t.then(r,r),t}function S(e){return function(){for(var t=0,n=Object.keys(e);t<n.length;t++){var r=n[t];H.as(e[r]).cancel()}}}Object.defineProperty(t,"__esModule",{value:!0});var T,x,P,O,C,D,I,M,R,k,A=n(0),j=n(42),L="error",U="Canceled",N=1;T={name:"created",enter:function(e){e._setState(x)},cancel:i,done:i,then:i,_completed:i,_error:i,_notify:i,_setCompleteValue:i,_setErrorValue:i},x={name:"working",enter:i,cancel:function(e){e._setState(C)},done:d,then:b,_completed:o,_error:p,_notify:i,_setCompleteValue:y,_setErrorValue:g},P={name:"waiting",enter:function(e){var t=e._value;if(t instanceof z&&t._state!==k&&t._state!==M)v(t,{promise:e});else{var n=function(r){t._errorId?e._chainedError(r,t):(m(e,r,s,t,n),e._error(r))};n.handlesOnError=!0,t.then(e._completed.bind(e),n)}},cancel:function(e){e._setState(O)},done:d,then:b,_completed:o,_error:p,_notify:i,_setCompleteValue:y,_setErrorValue:g},O={name:"waiting_canceled",enter:function(e){e._setState(D);var t=e._value;H.is(t)&&t.cancel()},cancel:i,done:d,then:b,_completed:o,_error:p,_notify:i,_setCompleteValue:y,_setErrorValue:g},C={name:"canceled",enter:function(e){e._setState(D),e._cancelAction()},cancel:i,done:d,then:b,_completed:o,_error:p,_notify:i,_setCompleteValue:y,_setErrorValue:g},D={name:"canceling",enter:function(e){var t=new Error(U);t.name=t.message,t._handled=!0,e._value=t,e._setState(R)},cancel:i,done:i,then:i,_completed:i,_error:i,_notify:i,_setCompleteValue:i,_setErrorValue:i},I={name:"complete_notify",enter:function(e){if(e._listeners)for(var t=[e],n=void 0;t.length;)n=t.shift(),n._state._notify(n,t);e._setState(M)},cancel:i,done:function(e,t,n){return q.prototype.done.call(e,t,n)},then:function(e,t,n){return q.prototype.then.call(e,t,n)},_completed:i,_error:i,_notify:f,_setCompleteValue:i,_setErrorValue:i},M={name:"success",enter:function(e){e._cleanupAction()},cancel:i,done:function(e,t,n){return q.prototype.done.call(e,t,n)},then:function(e,t,n){return q.prototype.then.call(e,t,n)},_completed:i,_error:i,_notify:f,_setCompleteValue:i,_setErrorValue:i},R={name:"error_notify",enter:function(e){if(e._listeners)for(var t=[e],n=void 0;t.length;)n=t.shift(),n._state._notify(n,t);e._setState(k)},cancel:i,done:function(e,t,n){return V.prototype.done.call(e,t,n)},then:function(e,t,n){return V.prototype.then.call(e,t,n)},_completed:i,_error:i,_notify:h,_setCompleteValue:i,_setErrorValue:i},k={name:"error",enter:function(e){e._cleanupAction()},cancel:i,done:function(e,t,n){return V.prototype.done.call(e,t,n)},then:function(e,t,n){return V.prototype.then.call(e,t,n)},_completed:i,_error:i,_notify:h,_setCompleteValue:i,_setErrorValue:i};var F,V=function(){function e(e,t){void 0===t&&(t=c),this._value=e,m(this,e,t)}return e.prototype.cancel=function(){},e.prototype.done=function(e,t){var n=this._value;if(t)try{t.handlesOnError||m(null,n,s,this,t);var i=t(n);return void(H.is(i)&&i.done())}catch(e){n=e}n instanceof Error&&n.message===U||r(n)},e.prototype.then=function(e,t){if(!t)return this;var n,r=this._value;try{t.handlesOnError||m(null,r,s,this,t),n=new q(t(r))}catch(e){n=e===r?this:new B(e)}return n},e.prototype.catch=function(e){return this.then(void 0,e)},e}(),B=function(e){function t(t){return e.call(this,t,l)||this}return A.__extends(t,e),t}(V),q=function(){function e(e){if(H.isPromise(e)){var t=new z(void 0);return t._setCompleteValue(e),t}this._value=e}return e.prototype.cancel=function(){},e.prototype.done=function(e){if(e)try{var t=e(this._value);H.is(t)&&t.done()}catch(e){r(e)}},e.prototype.then=function(t){var n;try{var r=t?t(this._value):this._value;n=this._isSameValue(r)?this:new e(r)}catch(e){n=new B(e)}return n},e.prototype.catch=function(e){return this.then(void 0)},e.prototype._isSameValue=function(e){return e===this._value},e}(),H=function(){function e(e,t){this._init(e,t)}return Object.defineProperty(e,"cancel",{get:function(){return F||(F=new V(new Error(U)))},enumerable:!0,configurable:!0}),e.any=function(t){return new e(function(n,r){var i=Object.keys(t),o=i.length;0===o&&n();for(var a=0,s=i;a<s.length;a++){var u=s[a];!function(i){e.as(t[i]).then(function(){n({key:i,value:t[i]})},function(a){if(a instanceof Error&&a.name===U)return void(0==--o&&n(e.cancel));r({key:i,value:t[i]})})}(u)}},S(t))},e.race=function(t){return new e(function(n,r){var i=Object.keys(t),o=i.length;0===o&&n();for(var a=0,s=i;a<s.length;a++){var u=s[a];e.as(t[u]).then(n,function(t){if(t instanceof Error&&t.name===U)return void(0==--o&&n(e.cancel));r(t)})}},S(t))},e.as=function(t){return e.is(t)?t:new q(t)},e.is=function(t){return e.isPromise(t)&&"function"==typeof t.cancel},e.isPromise=function(e){return e&&"object"==typeof e&&"function"==typeof e.then},e.isCanceled=function(e){return e instanceof Error&&e.name===U},e.all=function(t){return new e(function(n,r){for(var i=Object.keys(t),o=Array.isArray(t)?[]:{},a=Array.isArray(t)?[]:{},s=i.length,u=function(){if(0==--s){var t=Object.keys(o);0===t.length?n(a):t.every(function(t){return e.isCanceled(o[t])})?n(e.cancel):r(o)}},c=0,l=i;c<l.length;c++){var d=l[c];!function(n){var r=t[n];void 0===r?s--:e.then(r,function(e){a[n]=e,u()},function(e){o[n]=e,u()})}(d)}0===s&&n(a)},S(t))},e.then=function(t,n,r){return e.as(t).then(n,r)},e.thenEach=function(t,n,r){for(var i=Array.isArray(t)?[]:{},o=0,a=Object.keys(t);o<a.length;o++){var s=a[o];i[s]=e.then(t[s],n,r)}return e.all(i)},e.serial=function(t){return t.reduce(function(e,t){return e.then(t)},e.wrap())},e.timeout=function(e,t){var n=E(e);return t?w(n,t):n},e.wrap=function(e){return new q(e)},e.resolve=function(t){return e.wrap(t)},e.wrapError=function(e){return new V(e)},e.reject=function(t){return e.wrapError(t)},e.prototype.cancel=function(){this._state.cancel(this),this._run()},e.prototype.done=function(e,t){this._state.done(this,e,t)},e.prototype.then=function(e,t){return this._state.then(this,e,t)},e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype._init=function(e,t){this._oncancel=t,this._setState(T),this._run();try{e(this._completed.bind(this),this._error.bind(this))}catch(e){this._setExceptionValue(e)}},e.prototype._cancelAction=function(){if(this._oncancel)try{this._oncancel()}catch(e){}},e.prototype._cleanupAction=function(){this._oncancel=null},e.prototype._chainedError=function(e,t){var n=this._state._error(this,e,u,t);return this._run(),n},e.prototype._completed=function(e){var t=this._state._completed(this,e);return this._run(),t},e.prototype._error=function(e){var t=this._state._error(this,e,c);return this._run(),t},e.prototype._setState=function(e){this._nextState=e},e.prototype._setCompleteValue=function(e){this._state._setCompleteValue(this,e),this._run()},e.prototype._setChainedErrorValue=function(e,t){var n=this._state._setErrorValue(this,e,u,t);return this._run(),n},e.prototype._setExceptionValue=function(e){var t=this._state._setErrorValue(this,e,l);return this._run(),t},e.prototype._run=function(){for(;this._nextState;)this._state=this._nextState,this._nextState=null,this._state.enter(this)},e.prototype._isSameValue=function(e){return e===this._value},e}();j.declare(H,L);var z=function(e){function t(t){var n=e.call(this)||this;return n._creator=t,n._initThen(),n}return A.__extends(t,e),t.prototype._init=function(){},t.prototype._cancelAction=function(){this._creator&&this._creator.cancel()},t.prototype._cleanupAction=function(){this._creator=null},t.prototype._initThen=function(){this._setState(T),this._run()},t}(H),K=function(e){function t(t){var n=e.call(this)||this;return n._oncancel=t,n._initSignal(),n}return A.__extends(t,e),t.prototype._init=function(){},t.prototype._cancelAction=function(){this._oncancel&&this._oncancel()},t.prototype._cleanupAction=function(){this._oncancel=null},t.prototype._initSignal=function(){this._setState(T),this._run()},t}(H);t.SignalPromise=K,t.CancelablePromise=H,t.default=t.CancelablePromise},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e[e.none=0]="none",e[e.session=1]="session",e[e.local=2]="local",e[e.sharedMemory=3]="sharedMemory"}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(4),t)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(30),t);var r=n(30);t.default=r.Engagement},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(31),t);var r=n(31);t.default=r.Qos},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=n(8),o=n(6);t.ResultTypeEnum=o.ResultTypeEnum,t.QosError=r.createSingleEvent({eventName:"QosError,CaughtError,Trace,",shortEventName:"QosError",critical:!0},{name:{isKey:!0,type:1},resultCode:1,resultType:{typeRef:o.ResultTypeEnum,type:6}},i.CaughtError)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=n(33);t.Verbose=r.createSingleEvent({eventName:"Verbose,Trace,",shortEventName:"Verbose",requiresParent:!1},{name:{isKey:!0,type:1}},i.Trace)},function(e,t,n){"use strict";function r(e){var t;try{var n=[];t=JSON.stringify(e,function(e,t){return t===window?"[window]":t instanceof HTMLElement?"[HTMLElement]":"function"==typeof t?"[function]":"object"==typeof t?null===t?t:-1===n.indexOf(t)?(n.push(t),t):"[circular]":t})}catch(e){t=JSON.stringify("[object]")}return t}Object.defineProperty(t,"__esModule",{value:!0}),t.safeSerialize=r},function(e,t,n){"use strict";function r(e){return null===e||void 0===e}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(34),a=n(35),s=n(36),u=n(19),c=n(65);!function(e){e[e.Incomplete=1]="Incomplete",e[e.ReadyToUpload=2]="ReadyToUpload",e[e.Uploaded=3]="Uploaded",e[e.TimeOut=4]="TimeOut",e[e.Skipped=5]="Skipped"}(i||(i={}));var l=function(){function e(e,t,n,r,i,o,a){this.url=e,this.duration=t,this.correlationId=n,this.status=r,this.startTime=i,this.endTime=o,this.name=a}return e}();t.APICallPerformanceData=l;var d=["EUPL","ScenarioId"],p=/^[a-zA-Z0-9](([a-zA-Z0-9|_|\.]){0,98}[a-zA-Z0-9])?$/,f=function(){function e(e,t,n,r,i,o,a){this.controlId=e,this.startTime=t,this.endTime=n,this.renderTimeCalculator=r,this.renderTimeRequiredDataChecker=i,this.ignoreForEUPL=void 0===o||o,this.needFlatten=void 0!==a&&a}return e}();t.ControlPerformanceData=f;var h={checkInterval:100,error_timeout:3e4,max_markers:100},m=function(){function e(e,t,n){void 0===n&&(n=h),this._keyMetrics=d.slice(0),this.async=new o.default(this),this.dataStartTime=Number((new Date).getTime()),this._rumoneData={},this.dataState=i.Incomplete,this.controls=[],this.apis=[],this._loggingFunctions=[],this.euplBreakDown={},this.serverMetrics={},this.isW3cTimingCollected=!1,this.isW3cResourceTimingCollected=!1,this.tempData={},this._emergencyUpdateFunc=this._emergencyUpload.bind(this),this._name=e,this.registerLoggingFunc(t),this._config=n,this.setPerfDataTimer(),this._platformDetection=new u.default,this._hookUnloadEvent()}return e.getRUMOneLogger=function(t,n,r){void 0===t&&(t="__default_rumone__"),void 0===r&&(r=h);var i=n||function(e,t){s.RUMOneDataUpload.logData({streamName:e,dictionary:t})};if(!e.Loggers[t])try{var o=new e(t,i,r);"__default_rumone__"===t&&(e.rumOneLogger=o),e.Loggers[t]=o}catch(e){}return e.Loggers[t]},e.prototype.registerLoggingFunc=function(e){var t=this,n=this._loggingFunctions.indexOf(e);return n<0&&this._loggingFunctions.push(e),function(){n>=0&&t._loggingFunctions.splice(n,1)}},Object.defineProperty(e.prototype,"KeyMetrics",{get:function(){return this._keyMetrics},enumerable:!0,configurable:!0}),e.prototype.getPerformanceData=function(){return this._rumoneData},e.prototype.resetLogger=function(){this._emergencyUpload(),this.dataStartTime=(new Date).getTime(),this.dataState=i.Incomplete,this.isW3cTimingCollected=!1,this.isW3cResourceTimingCollected=!1,this.controls=[],this.apis=[],this.tempData={},this._rumoneData={},this._excludePageData=!1,this._waitOnAddingExpectedControl=!1,this._keyMetrics=d.slice(0),this.clearPerfDataTimer(),this.setPerfDataTimer(),this.euplBreakDown={},this.serverMetrics={},this.clearResourceTimings(),c.clearMarks(this._getOwnMakers().map(function(e){return e.name})),e._markers[this._name]=[],this._unhookUnloadEvent(),this._hookUnloadEvent(),this.logMessageInConsole("Reset performance Logger Done")},e.prototype.excludePageForPerfData=function(){this._excludePageData=!0},e.prototype.getPerformanceDataPropertyValue=function(e){return e&&this._rumoneData[e]},e.prototype.setPerformanceDataPropertyValue=function(e,t){return e&&p.test(e)?(this._rumoneData[e]=t,!0):(console.error("key "+e+" does not confrim to the Regex "+p),!1)},e.prototype.addExpectedControl=function(e){var t=this._normalizeControl(e);this.expectingControl(e)?this.controls.filter(function(e){return e.controlId===t.controlId})[0].ignoreForEUPL=t.ignoreForEUPL:this.controls.push(t)},e.prototype.expectingControl=function(e){var t=this._normalizeControl(e);return this.controls.filter(function(e){return e.controlId===t.controlId}).length>0},e.prototype.writeServerCorrelationId=function(e){this._rumoneData.ServerCorrelationId=this._rumoneData.ServerCorrelationId||e},e.prototype.writeServerUrl=function(e){this._rumoneData.ServerUrl||(this._rumoneData.ServerUrl=e||window.location&&window.location.href)},e.prototype.writeServerSideLatency=function(e,t){this.isCollected("ServerRequestDuration")||(this._rumoneData.ServerRequestDuration=e,this._rumoneData.IISLatency=t)},e.prototype.writeControlPerformanceData=function(e){if(e){var t=this.controls.filter(function(t){return t.controlId===e.controlId})[0];if(t)t.data||(t.data=e);else{var n={controlId:e.controlId,data:e,ignoreForEUPL:e.ignoreForEUPL};this.controls.push(n)}}},e.prototype.writeAPICallPerformanceData=function(e){e&&this.apis.push(e)},e.prototype.readAPICallPerformanceData=function(){return this.apis},e.prototype.writeAppCache=function(e){this.isCollected("AppCache")||(this._rumoneData.AppCache=e)},e.prototype.writePageTransitionType=function(e,t){this.isCollected("PageTransitionType")&&!t||e!==a.default.fullPageLoad&&e!==a.default.none&&e!==a.default.onePageAppNavigation||(this._rumoneData.PageTransitionType=e)},e.prototype.writeScenarioId=function(e,t){this.isCollected("ScenarioId")&&!t||(this._rumoneData.ScenarioId=e)},e.prototype.collectW3CPerfTimings=function(){if(!this.isW3cTimingCollected){var e=["navigationStart","unloadEventStart","unloadEventEnd","fetchStart","redirectStart","redirectEnd","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","responseEnd","domLoading","domComplete","loadEventStart","loadEventEnd"],t=performance&&performance.timing;if(t){for(var n=0;n<e.length;n++){var r=t[e[n]];r&&this._logRUMOneData(this.getW3cTimingName(e[n]),Number(r))}this.isW3cTimingCollected=!0}}},e.prototype.collectW3cResourceTimings=function(){if(window.document&&!this.isW3cResourceTimingCollected&&performance&&performance.getEntriesByType){for(var e=performance.getEntriesByType("resource"),t=document.getElementsByTagName("iframe"),n=0;n<t.length;n++){var r=null;try{r=t[n].contentWindow.performance}catch(e){}r&&r.getEntriesByType&&e.concat(r.getEntriesByType("resource"))}var i={};i.SharePoint=function(e){return/\.sharepoint\.com|\.spoppe\.com/i.test(e.name)},i.CDN=function(e){return/(cdn(ppe)?|static(ppe)?)\.sharepointonline\.com|\.akamaihd\.net/i.test(e.name)},i.ThirdParty=function(e){return!i.SharePoint(e)&&!i.CDN(e)};var o={};o.ASPX=function(e){return/\.aspx/i.test(e.name)},o.JS=function(e){return/script/i.test(e.initiatorType)},o.CSS=function(e){return/link|css/i.test(e.initiatorType)},o.IMG=function(e){return/img/i.test(e.initiatorType)};for(var a=Object.keys(i),n=0;n<a.length;n++){var s=a[n],u=this.categorizeResourceRequests(e,{from:i[s],requestType:null});this._logRUMOneData(s+"RequestCountTotal",u.length);for(var c=Object.keys(o),l=0;l<c.length;l++){var d=c[l];this._logRUMOneData(s+"RequestCount"+d,this.categorizeResourceRequests(u,{from:null,requestType:o[d]}).length)}if(u.length>0){this._logRUMOneData(s+"RequestDownloadTime",Math.round(u.reduce(function(e,t){return e+t.duration},0)/u.length));var p=JSON.stringify(u.map(function(e){return{name:e.name.split("/").map(function(e){return e.split("?")[0]}).filter(function(e){return e&&e.length>0}).slice(-1)[0].replace(/\(.*?\)/g,"()"),startTime:Math.round(e.startTime),duration:Math.round(e.duration),transferSize:e.transferSize||0}}));this._logRUMOneData(s+"RequestNames",p)}}this.isW3cResourceTimingCollected=!0}},e.prototype.saveTempData=function(e,t){this.tempData[e]=t},e.prototype.readTempData=function(e){return this.tempData[e]},e.prototype.writeRenderTime=function(e,t){this.isCollected("RenderTime")&&!t||(this._rumoneData.RenderTime=e)},e.prototype.writePreRenderTime=function(e){this.isCollected("PreRender")||(this._rumoneData.PreRender=e)},e.prototype.writePostRenderTime=function(e){this.isCollected("PostRender")||(this._rumoneData.PostRender=e)},e.prototype.writeDataFetchTime=function(e,t){this.isCollected("DataFetch")&&!t||(this._rumoneData.DataFetch=e)},e.prototype.writeAppInfo=function(e,t){this.isCollected("AppInfo")&&!t||(this._rumoneData.AppInfo=e)},e.prototype.isRunning=function(){return!(this.dataState===i.Uploaded||this.dataState===i.TimeOut||this.dataState===i.Skipped)},e.prototype.writeEUPLBreakdown=function(e,t){if(e)try{var n=JSON.parse(e);for(var r in n)n.hasOwnProperty(r)&&this.addEUPLBreakdown(r,n[r],t)}catch(e){this.logMessageInConsole("Failed to write EUPL breakdown data:"+e.toString())}},e.prototype.addEUPLBreakdown=function(e,t,n){if(e&&!r(t)){if(r(this.euplBreakDown[e])||n){var i=this._isBreakdownValue(t)?t.data:t;this.euplBreakDown[e]=i}this._isBreakdownValue(t)&&t.needFlatten&&this._logRUMOneData(e,t.data)}},e.prototype.readEUPLBreakdown=function(e){return e?this.euplBreakDown[e]:this.euplBreakDown},e.prototype.addFlights=function(e){if(e&&e.length>0){for(var t=JSON.parse(this.getPerformanceDataPropertyValue("Flights")||"[]"),n=0;n<e.length;n++){var r=e[n];r&&-1===t.indexOf(r)&&t.push(r)}this._rumoneData.Flights=JSON.stringify(t)}},e.prototype.collectSPClientFlights=function(e){for(var t=e.ExpFeatures,n="",r=0,i=t;r<i.length;r++){var o=i[r];n+=this._numberToBinString(o).split("").reverse().join("")}this._rumoneData.Flights=n},e.prototype.addServerMetrics=function(e,t){if(e)for(var n in e)n&&!r(e[n])&&(r(this.serverMetrics[n])||t)&&(this.serverMetrics[n]=e[n])},e.prototype.writeServerVersion=function(e){this._rumoneData.SharePointServerVersion=e},e.prototype.readControlPerformanceData=function(){return this.controls.filter(function(e){return!!e.data}).map(function(e){return e.data})},e.prototype.mark=function(t){(e._markers[this._name]=e._markers[this._name]||[]).push(t),c.mark(t)},e.prototype.now=function(){return performance&&performance.now?Math.round(performance.now()):NaN},e.prototype.registerEUPLComputedHandler=function(e){this._EUPLComputedHandler=e},e.prototype.registerErrorHandler=function(e){},e.prototype.getMarkerTime=function(e){return c.getMarkerTime(e)},e.prototype.addExpectedKeyMetric=function(e){this._keyMetrics&&this._keyMetrics.indexOf(e)<=-1&&this._keyMetrics.push(e)},Object.defineProperty(e.prototype,"waitOnAddingExpectedControl",{set:function(e){this._waitOnAddingExpectedControl=e},enumerable:!0,configurable:!0}),e.prototype._numberToBinString=function(e){var t=(e>>>0).toString(2);return""+Array(32-t.length+1).join("0")+t},e.prototype._logRUMOneData=function(e,t){e&&(this._rumoneData[e]=t)},e.prototype.clearResourceTimings=function(){performance&&performance.clearResourceTimings&&performance.clearResourceTimings()},e.prototype._isBreakdownValue=function(e){return void 0!==e.needFlatten},e.prototype.collectMarks=function(){var e=this,t={},n=0;this._getOwnMakers().forEach(function(r){if(n<e._config.max_markers){var i=r.name.substr(c.MARKER_PREFIX.length)+".mark"+n++;t[i]=Math.round(r.startTime)}}),this.writeEUPLBreakdown(JSON.stringify(t))},e.prototype._getOwnMakers=function(){var t=this,n=e._markers,r=[].concat.apply([],Object.keys(n).filter(function(e){return n.hasOwnProperty(e)&&e!==t._name}).map(function(e){return n[e]}));return c.getAllMarks().filter(function(e){return-1===r.indexOf(e.name)})},e.prototype.logMessageInConsole=function(e){this.isRUMOneDebuggingEnabled&&console.log(e)},Object.defineProperty(e.prototype,"isRUMOneDebuggingEnabled",{get:function(){try{if("sessionStorage"in window&&window.sessionStorage){var e=window.sessionStorage.enableRUMOneDebugging;return e&&"true"===e.toLowerCase()&&"undefined"!=typeof console&&!!console}}catch(e){}return!1},enumerable:!0,configurable:!0}),e.prototype.logObjectForDebugging=function(e,t){if(this.isRUMOneDebuggingEnabled){var n=this._name+" "+e+" : "+JSON.stringify(t);console.log(n)}},e.prototype.isCollected=function(e){return!r(this.getPerformanceDataPropertyValue(e))},e.prototype._normalizeControl=function(e){return"string"==typeof e?{controlId:e,ignoreForEUPL:!1}:e},e.prototype.setPerfDataTimer=function(){this.perfDataTimer=this.async.setTimeout(this.loopForDataCompleteness,this._config.checkInterval)},e.prototype.clearPerfDataTimer=function(){r(this.perfDataTimer)||(this.async.clearTimeout(this.perfDataTimer),this.perfDataTimer=null)},e.prototype._hookUnloadEvent=function(){window.addEventListener&&window.addEventListener("beforeunload",this._emergencyUpdateFunc)},e.prototype._unhookUnloadEvent=function(){window.removeEventListener&&window.removeEventListener("beforeunload",this._emergencyUpdateFunc)},e.prototype.categorizeResourceRequests=function(e,t){for(var n=[],r=0;r<e.length;r++){var i=e[r];t.from&&!t.from(i)||t.requestType&&!t.requestType(i)||n.push(i)}return n},e.prototype.collectSupplementaryData=function(){this.setAPIDataToRUMOne(),this.collectMarks(),this.writeServerUrl(null),this.setBrowseInfo(),this.setReferrer(),this._collectMemoryData(),this._setAppInfo(),this._rumoneData.ServerMetrics=JSON.stringify(this.serverMetrics),this._rumoneData.EUPLBreakdown=JSON.stringify(this.euplBreakDown)},e.prototype.loopForDataCompleteness=function(){if(this.clearPerfDataTimer(),!this._waitOnAddingExpectedControl){if(this.isRUMOneDebuggingEnabled&&(this.logMessageInConsole("===================================================================="),this.logObjectForDebugging("RUMONE: ",this._rumoneData),this.logObjectForDebugging("RUMOne DataState: ",String(this.getReadableDataState(this.dataState))),this.logObjectForDebugging("Controls: ",this.controls),this.logObjectForDebugging("API Performance Data: ",this.apis),this.logObjectForDebugging("Temp Data: ",this.tempData),this.logObjectForDebugging("EUPLBreakdown: ",this.euplBreakDown),this.logObjectForDebugging("ServerMetrics: ",this.serverMetrics),this.logMessageInConsole("====================================================================\n\n")),!this.isRunning())return;if(this._updateState(),this.dataState===i.ReadyToUpload)return void this.finishPerfDataUpload();this.processControlRenderTime(),this.readyToComputeEUPL()&&(this.setEUPL(),this._updateState())}this._checkTimeout(),this.isRunning()&&this.setPerfDataTimer()},e.prototype._checkTimeout=function(){if(this.isRunning()&&this.dataState!==i.ReadyToUpload&&!(Number((new Date).getTime())-Number(this.dataStartTime)<=this._config.error_timeout)){this.dataState=i.TimeOut;var e={reason:"TimeOut",details:{MissingMetrics:this._getMissedKeyMetrics(),MissingControls:this._getMissedControls()}};this._rumoneData.RUMOneError=JSON.stringify(e),this.finishPerfDataUpload()}},e.prototype._updateState=function(){this.dataState=0===this._getMissedKeyMetrics().length&&0===this._getMissedControls().length?i.ReadyToUpload:i.Incomplete},e.prototype._getMissedKeyMetrics=function(){for(var e=[],t=0;t<this._keyMetrics.length;t++){r(this.getPerformanceDataPropertyValue(this._keyMetrics[t]))&&e.push(this._keyMetrics[t])}return e},e.prototype._getMissedControls=function(){return this.controls.filter(function(e){return!e.data||!e.data.renderTime})},e.prototype._emergencyUpload=function(){this.isRunning()&&0===this._getMissedKeyMetrics().length&&this.finishPerfDataUpload(!0)},e.prototype.finishPerfDataUpload=function(e){this.writeControlDataToRUMOne(),this.collectSupplementaryData();try{this.uploadPerfData(e),this.isRUMOneDebuggingEnabled&&(this.logMessageInConsole("Final Data uploaded"),this.logObjectForDebugging("RUMONE: ",this._rumoneData),this.logObjectForDebugging("RUMOne DataState: ",this.getReadableDataState(this.dataState)))}catch(e){!function(e){"undefined"!=typeof console&&Boolean(console)&&console.error(e)}("PerformanceLogger error writing RUMOne data: "+e)}finally{this._unhookUnloadEvent()}},e.prototype.getReadableDataState=function(e){for(var t in i)if(e===Number(i[t]))return t;return"NaN"},e.prototype.writeControlDataToRUMOne=function(){if(this.controls&&this.controls.length){var e=this.controls.slice(0).filter(function(e){return!!e.data&&!!e.data.renderTime&&!e.ignoreForEUPL});e.sort(function(e,t){return t.data.renderTime-e.data.renderTime});for(var t=0;t<10&&t<e.length;t++)this._logRUMOneData("Control"+(t+1)+"Id",e[t].controlId),this._logRUMOneData("Control"+(t+1)+"RenderTime",e[t].data.renderTime);var n={};this.controls.slice(0).filter(function(e){return!!e.data&&!!e.data.renderTime&&!!e.ignoreForEUPL}).forEach(function(e){n[e.controlId]={data:e.data.renderTime,needFlatten:e.data.needFlatten}}),Object.keys(n).length>0&&this.writeEUPLBreakdown(JSON.stringify(n),!0)}},e.prototype.processControlRenderTime=function(){for(var e=0,t=this.controls;e<t.length;e++){var n=t[e];n.data&&!n.data.renderTime&&n.data.renderTimeRequiredDataChecker(this,n.data)&&(n.data.renderTime=n.data.renderTimeCalculator(this,n.data))}},e.prototype.readyToComputeEUPL=function(){for(var e=this.controls.filter(function(e){return!e.ignoreForEUPL}),t=e.length>0,n=0,r=e;n<r.length;n++){var i=r[n];if(!i.data||!i.data.renderTime){t=!1;break}}return t},e.prototype.setEUPL=function(){if(!this.isCollected("EUPL")){for(var e=0,t=0,n=this.controls;t<n.length;t++){var r=n[t];!r.ignoreForEUPL&&r.data&&r.data.renderTime&&e<r.data.renderTime&&(e=r.data.renderTime)}this._rumoneData.EUPL=e,"function"==typeof this._EUPLComputedHandler&&this._EUPLComputedHandler(e)}},e.prototype.setBrowseInfo=function(){this._rumoneData.Browser=this._platformDetection.browserName+this._platformDetection.browserMajor,this._rumoneData.BrowserIsMobile=this._platformDetection.isMobile},e.prototype._collectMemoryData=function(){this.isCollected("UsedJSHeapSize")||"undefined"==typeof performance||void 0===performance.memory||(this._rumoneData.UsedJSHeapSize=performance.memory.usedJSHeapSize,this._rumoneData.TotalJSHeapSize=performance.memory.totalJSHeapSize)},e.prototype.setAPIDataToRUMOne=function(){for(var e=0,t=0,n=0;n<this.apis.length;n++){var r=this.apis[n];r&&(e++,t+=r.duration,r.url=r.url.split("/").map(function(e){return e.split("?")[0]}).slice(-1)[0].replace(/\(.*?\)/g,"()"))}this._rumoneData.APICallCount=e,this._rumoneData.APICallDurationSum=t,this._rumoneData.APICalls=JSON.stringify(this.apis)},e.prototype.setReferrer=function(){this._rumoneData.Referrer=window.document&&document.referrer},e.prototype._setAppInfo=function(){if(!this._rumoneData.AppInfo){var e=window._spModuleLink;if(e){var t=e.buildNumber,n=e.manifestName,r=e.scenarioName,i=JSON.stringify({buildNumber:t,manifestName:n,scenarioName:r});this._rumoneData.AppInfo=i}}},e.prototype.getW3cTimingName=function(e){return"secureConnectionStart"!==e?"W3c"+e.charAt(0).toUpperCase()+e.slice(1):"W3cSecureConnectStart"},e.prototype.uploadPerfData=function(e){var t=this;this._excludePageData?(this.dataState=i.Skipped,this.logMessageInConsole("Uploading perf data skipped as requested by the consumer")):e||this.dataState===i.ReadyToUpload||this.dataState===i.TimeOut?this._loggingFunctions&&this._loggingFunctions.length>0?this._rumoneData?(this._loggingFunctions.forEach(function(e){e("RUMOne",t.getPerformanceData())}),this.dataState=i.Uploaded):console.error("Error: Uploading perf data called but perf data is not available"):console.error("Uploading perf data skipped as loggingFunc is not defined"):console.error("Error: Uploading perf data called with wrong data state "+this.dataState)},e.rumOneLogger=void 0,e.Loggers={},e._markers={},e}();t.RUMOneLogger=m,t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(64);t.default=r.PlatformDetection},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(5),t);var r=n(5);t.default=r.Manager},function(e,t,n){"use strict";function r(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return e.replace(v,function(e,n){var r=t[Number(n)];return null===r?"":""+r})}function i(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var r,i=[],o=0;r=v.exec(e);){var a=r[0],s=parseInt(a.replace(/\{|\}+/g,""),10),u=t[s];r.index>o&&i.push(e.substring(o,r.index)),o=v.lastIndex,i.push(u)}return o!==e.length&&i.push(e.substring(o,e.length)),i}function o(e,t){return e.substr(e.length-t.length)===t}function a(e,t){return e.substr(0,t.length)===t}function s(e,t){for(var n=e.toString();n.length<t;)n+="0";return n}function u(e,t){for(var n=e.toString();n.length<t;)n="0"+n;return n}function c(e,t){for(var n=0;n<e.length;n++)if(t.indexOf(e[n])>=0)return n;return-1}function l(e,t){return e&&t?e.toUpperCase()===t.toUpperCase():e===t}function d(e){return e?e[0].toUpperCase()+e.substr(1):e}function p(e){return e?e[0].toLowerCase()+e.substr(1):e}function f(e,t,n){return 1===e?t:n}function h(e,t,n){if(n=Number(n),void 0===e||void 0===t||void 0===n)return"";for(var r="",i=-1,o=t.split("||"),a=0,s=o.length;a<s;a++){var u=o[a];if(u){for(var c=u.split(","),l=0,d=c;l<d.length;l++){var p=d[l];if(p)if(isNaN(Number(p))){if(-1!==p.indexOf("-")){var f=p.split("-");if(2!==f.length)continue;var h=void 0,m=void 0;if(""===f[0])h=0;else{if(isNaN(Number(f[0])))continue;h=parseInt(f[0],10)}if(n>=h){if(""===f[1]){i=a;break}if(isNaN(Number(f[1])))continue;if(m=parseInt(f[1],10),n<=m){i=a;break}}}else if(-1!==p.indexOf("*")){var v=p.trim().replace(/\*/g,"[0-9]*"),_=new RegExp("^"+v+"$");if(_.test(n.toString())){i=a;break}}}else{var g=parseInt(p,10);if(n===g){i=a;break}}}if(-1!==i)break}}if(-1!==i){var y=e.split("||");y[i]&&(r=y[i])}return r}function m(e,t,n){return r(h(e,t,n)||"",n.toString())}Object.defineProperty(t,"__esModule",{value:!0});var v=/\{(\d+)\}/g;t.format=r,t.formatToArray=i,t.doesStringEndWith=o,t.doesStringStartWith=a,t.rightPad=s,t.leftPad=u,t.findOneOf=c,t.equalsCaseInsensitive=l,t.capitalize=d,t.decapitalize=p,t.pluralSelect=f,t.getLocalizedCountValue=h,t.formatWithLocalizedCountValue=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(11),i=function(){function e(t,n){if(void 0===n&&(n=r.default.none),e.init(),this.dataStoreKey=t,this.defaultCachingType=n,n===r.default.none)this.dataStore={};else{void 0===e._dataStore[this.dataStoreKey]&&(e._dataStore[this.dataStoreKey]={}),this.dataStore=e._dataStore[this.dataStoreKey]}}return e.hasStorageType=function(t){switch(e.init(),t){case r.default.none:case r.default.sharedMemory:return!0;case r.default.session:return!!e._sessionStorage;case r.default.local:return!!e._localStorage}return!1},e.init=function(){if(!e._initialized){try{"localStorage"in window&&window.localStorage&&e.testStorage(window.localStorage)&&(e._localStorage=window.localStorage)}catch(e){}try{"sessionStorage"in window&&window.sessionStorage&&e.testStorage(window.sessionStorage)&&(e._sessionStorage=window.sessionStorage)}catch(e){}null==e._localStorage&&(e._localStorage=e._sessionStorage),e._initialized=!0}},e.testStorage=function(e){var t="BrowserStorageTest",n=!1;try{e.setItem(t,"1"),"1"===e.getItem(t)&&(n=!0),e.removeItem(t)}catch(e){}return n},e.prototype.setValue=function(e,t,n,r){void 0===r&&(r=!0),e=r?this.normalizeKey(e):e,this.dataStore[e]=t;var i=this.getStorage(n);if(i)try{var o=[],a=JSON.stringify(t,function(e,t){if("object"==typeof t&&null!==t){if(-1!==o.indexOf(t))return;o.push(t)}return t});o=null,i.setItem(this.dataStoreKey+e,a)}catch(e){}},e.prototype.getValue=function(e,t,n){void 0===n&&(n=!0),e=n?this.normalizeKey(e):e;var r=this.dataStore[e],i=this.getStorage(t);if(void 0===r&&i){var o=i.getItem(this.dataStoreKey+e);if(o)try{r=JSON.parse(o),this.dataStore[e]=r}catch(e){r=void 0}}return r},e.prototype.remove=function(e,t,n){void 0===n&&(n=!0),e=n?this.normalizeKey(e):e;var r=this.getStorage(t);r&&r.removeItem(this.dataStoreKey+e),delete this.dataStore[e]},e.prototype.getStorage=function(t){switch(t||this.defaultCachingType){case r.default.none:case r.default.sharedMemory:return null;case r.default.session:return e._sessionStorage;case r.default.local:return e._localStorage}return null},e.prototype.normalizeKey=function(e){return e&&e.toLowerCase()||""},e._sessionStorage=null,e._localStorage=null,e._dataStore={},e._initialized=!1,e}();t.default=i},function(e,t,n){"use strict";function r(e){var t=e&&e.killSwitches;return{isActivated:function(e,n,r){return!!t&&!!t[i.default.normalizeUpper(e,!1)]}}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(90),o=function(){function e(){}return e.initKillSwitches=function(t){e._killSwitches=t||{}},e.isActivated=function(t,n,r){var o=window._spPageContextInfo;return!e._killSwitches&&o&&o.killSwitches&&e.initKillSwitches(o.killSwitches),!(!t||!e._killSwitches)&&e._killSwitches[i.default.normalizeUpper(t,!1)]},e}();t.Killswitch=o,t.getKillSwitch=r},function(e,t,n){"use strict";function r(e,t){var n=!!e.Fallback,r=e.ODB;if("boolean"==typeof r)n=r;else if(r>0){var i=Math.floor(r/32),o=1<<r%32;n=i<t.length&&0!=(t[i]&o)}return n}Object.defineProperty(t,"__esModule",{value:!0}),t.isSPFeatureEnabled=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(93),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.attached=function(e){var t=this,n=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.attach(e.apply(this,n)||this)};return n.prototype=e.prototype,n},t}(i.Scope);t.default=o},function(e,t,n){"use strict";function r(e){function t(e){var r=null;return e&&(r=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e)),Object.keys(e).forEach(function(i){var o=e[i];if("object"==typeof o){if(-1!==n.indexOf(o))throw new Error("Cannot perform DeepCopy() because a circular reference was encountered, object: "+e+", property: "+i);n.push(o),r[i]=t(o),n.pop()}else r[i]=o})),r}var n=[];return t(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.deepCopy=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),i=function(){function e(e,t){e?(this.root=e.root,this.parent=e.current):this.root=this.parent=r.Empty,this.current=t||r.generate()}return e._getCorrelationVector=function(){var t;return"undefined"!=typeof window?t=window.rootVector:"undefined"!=typeof self&&(t=self.rootVector),t||new e},e.prototype.toString=function(){return this.root+"#"+this.parent+"#"+this.current},e.RootVector=e._getCorrelationVector(),e}();t.CorrelationVector=i},function(e,t,n){"use strict";function r(e){for(var t="";t.length<e;){var n=16*Math.random();n|=0,t+=n.toString(16)}return t}function i(){var e=[];e.push(r(8)),e.push(r(4));var t="4"+r(3);e.push(t);var n=r(4),i=parseInt(n[0],16);return i&=3,i|=8,n=i.toString(16)+n.substr(1),e.push(n),e.push(r(12)),e.join("-")}function o(e,t){return void 0===t&&(t=!1),e?u(e.toLowerCase(),t):""}function a(e,t){return void 0===t&&(t=!1),e?u(e.toUpperCase(),t):""}function s(e,t){if(void 0===t&&(t=!1),e){var n=e.replace(/[^A-Fa-f0-9]/g,"");if(32===n.length)return u(n.slice(0,8)+"-"+n.slice(8,12)+"-"+n.slice(12,16)+"-"+n.slice(16,20)+"-"+n.slice(20),t)}return""}function u(e,t){var n=e.match(/^\{(.*)\}$/);return n?t?n[0]:n[1]:t?"{"+e+"}":e}Object.defineProperty(t,"__esModule",{value:!0}),t.Empty="00000000-0000-0000-0000-000000000000",t.generate=i,t.normalizeLower=o,t.normalizeUpper=a,t.normalizeDashes=s},function(e,t,n){"use strict";function r(e,t){return i.__assign(e,t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0);t.assign=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2);t.Engagement=r.createSingleEvent({eventName:"Engagement,",shortEventName:"Engagement"},{name:{isKey:!0,isPrefixingDisabled:!0,type:1},isIntentional:{isPrefixingDisabled:!0,type:3},scenario:{isPrefixingDisabled:!0,type:1},location:{isPrefixingDisabled:!0,type:1},usageType:{isPrefixingDisabled:!0,type:1},currentPage:{isPrefixingDisabled:!0,type:1},previousPage:{isPrefixingDisabled:!0,type:1},experiment:{isPrefixingDisabled:!0,type:4},siteId:{isPrefixingDisabled:!0,type:1},webId:{isPrefixingDisabled:!0,type:1},listId:{isPrefixingDisabled:!0,type:1},groupId:{isPrefixingDisabled:!0,type:1},docId:{isPrefixingDisabled:!0,type:1},webTemplateId:{isPrefixingDisabled:!0,type:1},listTemplateId:{isPrefixingDisabled:!0,type:1},siteType:{isPrefixingDisabled:!0,type:1},feature:{isPrefixingDisabled:!0,type:1},component:{isPrefixingDisabled:!0,type:1},extraData:4,objectType:{isPrefixingDisabled:!0,type:1},datasource:{isPrefixingDisabled:!0,type:1},action:{isPrefixingDisabled:!0,type:1}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(32),i=n(6);t.ResultTypeEnum=i.ResultTypeEnum,t.Qos=r.createPairedEvent({eventName:"Qos,",shortEventName:"Qos"},{name:{isKey:!0,isPrefixingDisabled:!0,type:1},startTimeOverride:{isPrefixingDisabled:!0,type:2},resultCode:{isPrefixingDisabled:!0,type:1},resultType:{typeRef:i.ResultTypeEnum,isPrefixingDisabled:!0,type:6},error:{isPrefixingDisabled:!0,type:1},extraData:4,extraMetrics:{isPrefixingDisabled:!0,type:4}})},function(e,t,n){"use strict";function r(e,t,n){var r={resultType:e};return t&&(r.resultCode=t),n&&(r.error=n),r}function i(e,t,n){var r=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t}(d);return a.addEventProps(r.prototype,e,t,n),r}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=n(4),s=n(5),u=n(6),c=n(7),l=n(17),d=function(e){function t(t,n){return e.call(this,t,a.ClonedEventType.Start,n)||this}return o.__extends(t,e),t.instrumentPromise=function(e,t,n,i,o,a,s){var c,d=new this(e,s);o&&d.setTimeout(o,a);var p=function(e){var t;if(n)try{t=n(e)}catch(e){t=r(u.ResultTypeEnum.Failure,"GetSchemaException",e.toString())}else t=r(u.ResultTypeEnum.Success);d.end(t)},f=function(e){var t;if(i)try{t=i(e)}catch(e){t=r(u.ResultTypeEnum.Failure,"GetSchemaException",e.toString())}else if(e){var n=e instanceof Error&&"Canceled"===e.name?u.ResultTypeEnum.ExpectedFailure:u.ResultTypeEnum.Failure;t=r(n,void 0,l.safeSerialize(e))}else t=r(u.ResultTypeEnum.Failure);d.end(t)};try{c=t()}catch(e){throw d.end(r(u.ResultTypeEnum.Failure,"PromiseCreationFailed",e.toString())),e}return c.then(p,f),c},t.prototype.setTimeout=function(e,t){this._clearTimeout(),t||(t=r(u.ResultTypeEnum.Failure,"Timeout")),this.timeoutId=window.setTimeout(this.end.bind(this,t),e)},t.prototype.verbose=function(e){if(!this.endTime&&this._isQosEvent()){var t=this.data;c.verbose(e,t.name)}},t.prototype.end=function(e){if(!this.endTime){if(e&&this._setData(e),this.endTime=s.Manager.getTime(),this._logEvent(a.ClonedEventType.End),this._isQosEvent()){var t=this.data;t.error&&c.log(t.error,t.name,t.resultCode,t.resultType)}this._clearTimeout()}},t.prototype._clearTimeout=function(){this.timeoutId&&(window.clearTimeout(this.timeoutId),this.timeoutId=void 0)},t.prototype._isQosEvent=function(){return this.eventName.indexOf("Qos,")>=0},t}(a.EventBase);t.createPairedEvent=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2);t.Trace=r.createSingleEvent({eventName:"Trace,",shortEventName:"Trace",requiresParent:!1},{message:1})},function(e,t,n){"use strict";function r(){}function i(e){o.default.log(e)}Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),a=function(){function e(e,t){void 0===t&&(t=i),this._isDisposed=!1,this._parent=e||null,this._onErrorHandler=t,this._timeoutIds=null,this._immediateIds=null,this._animationFrameIds=null,this._intervalIds=null}return e.prototype.dispose=function(){if(!this._isDisposed){if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(var e=0,t=Object.keys(this._timeoutIds);e<t.length;e++){var n=t[e];this.clearTimeout(Number(n))}this._timeoutIds=null}if(this._immediateIds){for(var r=0,i=Object.keys(this._immediateIds);r<i.length;r++){var n=i[r];this.clearImmediate(Number(n))}this._immediateIds=null}if(this._intervalIds){for(var o=0,a=Object.keys(this._intervalIds);o<a.length;o++){var n=a[o];this.clearInterval(Number(n))}this._intervalIds=null}if(this._animationFrameIds){for(var s=0,u=Object.keys(this._animationFrameIds);s<u.length;s++){var n=u[s];this.cancelAnimationFrame(Number(n))}this._animationFrameIds=null}}},e.prototype.setTimeout=function(e,t){var n=this,r=0;if(!this._isDisposed){var i=this._timeoutIds||(this._timeoutIds={}),o=this._parent;r=setTimeout(function(){try{delete i[r],e.apply(o)}catch(e){n._logError(e)}},t),i[r]=!0}return r},e.prototype.clearTimeout=function(e){var t=this._timeoutIds;t&&t[e]&&(clearTimeout(e),delete t[e])},e.prototype.setImmediate=function(e){var t=this,n=0;if(!this._isDisposed){var r=this._immediateIds||(this._immediateIds={}),i=this._parent,o=function(){try{delete r[n],e.apply(i)}catch(e){t._logError(e)}};n=window.setImmediate?window.setImmediate(o):window.setTimeout(o,0),r[n]=!0}return n},e.prototype.clearImmediate=function(e){var t=this._immediateIds;t&&t[e]&&(window.clearImmediate?window.clearImmediate(e):window.clearTimeout(e),delete t[e])},e.prototype.setInterval=function(e,t){var n=this,r=0;if(!this._isDisposed){this._intervalIds||(this._intervalIds={});var i=this._parent;r=setInterval(function(){try{e.apply(i)}catch(e){n._logError(e)}},t),this._intervalIds[r]=!0}return r},e.prototype.clearInterval=function(e){this._intervalIds&&this._intervalIds[e]&&(clearInterval(e),delete this._intervalIds[e])},e.prototype.throttle=function(e,t,n){var i=this;if(void 0===n&&(n={}),this._isDisposed)return r;var o,a,s=t||0,u=n.leading,c=void 0===u||u,l=n.trailing,d=void 0===l||l,p=0,f=null,h=this._parent,m=function(t){var n=(new Date).getTime(),r=n-p,u=c?s-r:s;return r>=s&&(!t||c)?(p=n,f&&(i.clearTimeout(f),f=null),o=e.apply(h,a)):null===f&&d&&(f=i.setTimeout(m,u)),o};return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return a=e,m(!0)}},e.prototype.debounce=function(e,t,n){var i=this;if(void 0===n&&(n={}),this._isDisposed)return r;var o,a,s=t||0,u=n.leading,c=void 0!==u&&u,l=n.trailing,d=void 0===l||l,p=n.maxWait,f=void 0===p?NaN:p,h=0,m=(new Date).getTime(),v=null,_=this._parent,g=function(t){var n=(new Date).getTime(),r=!1;t&&(c&&n-h>=s&&(r=!0),h=n);var u=n-h,l=s-u,p=n-m,y=!1;return isNaN(f)||(p>=f&&v?y=!0:l=Math.min(l,f-p)),u>=s||y||r?(v&&(i.clearTimeout(v),v=null),m=n,o=e.apply(_,a)):null!==v&&t||!d||(v=i.setTimeout(g,l)),o};return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return a=e,g(!0)}},e.prototype.requestAnimationFrame=function(e){var t=this,n=0;if(!this._isDisposed){var r=this._animationFrameIds||(this._animationFrameIds={}),i=this._parent,o=function(){try{delete r[n],e.apply(i)}catch(e){t._logError(e)}};n=window.requestAnimationFrame?window.requestAnimationFrame(o):window.setTimeout(o,0),r[n]=!0}return n},e.prototype.cancelAnimationFrame=function(e){var t=this._animationFrameIds;t&&t[e]&&(window.cancelAnimationFrame?window.cancelAnimationFrame(e):window.clearTimeout(e),delete t[e])},e.prototype._logError=function(e){this._onErrorHandler&&this._onErrorHandler(e)},e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e[e.none=0]="none",e[e.fullPageLoad=4]="fullPageLoad",e[e.onePageAppNavigation=5]="onePageAppNavigation"}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(37),t);var r=n(37);t.default=r.RUMOneDataUpload},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2);t.RUMOneDataUpload=r.createSingleEvent({eventName:"RUMOneDataUpload,",shortEventName:"RUMOneDataUpload"},{streamName:1,dictionary:4})},function(e,t,n){"use strict";function r(e){return!!s}function i(e,t,n,r){void 0===r&&(r={});try{y.logStartEvents=!0;var i=a(t,r.platformDetection),o=new m.SimpleUri(t.completenessCallbackEndpoint),u={telemetryTenantToken:e,appVersion:t.version,environment:t.environment,workload:t.workload,farmLabel:t.farmLabel,callbackEndpoint:o};s=new v.AriaTelemetryHandler({ariaLoader:function(){return _.default.resolve(n)},context:i,tenantToken:e,disableCookies:t.disableCookies,logStartEvents:y.logStartEvents,ariaQos:{isQosEvent:function(e){return d.Beacon.isTypeOf(e)&&!!e.data&&e.data.name===g},reportQos:function(e){var t=e.result,n=e.statusCode,r=e.events;new d.Beacon({name:g,retryCount:0,totalRetries:0,eventCount:r?r.length:0}).end({success:0===t,status:n+""}),""!==o.authority&&new h.DataCompletenessInfo(u,t,n,(new Date).getTime(),r).send()}}});var c=s.attach(l.Manager);return function(){c(),s=void 0}}catch(e){return e instanceof n.Exception&&(e=new Error("Aria error: "+e.toString())),p.default.log(e),s=void 0,function(){}}}function o(e,t){if(void 0===t&&(t={}),s){var n=a(e,t.platformDetection);s.updateContext(n)}}function a(e,t){void 0===t&&(t=new f.default);var n=u.__assign({AccountType:c.AccountType[e.accountType],BrowserIsMobile:t.isMobile,BrowserMajVer:t.browserMajor,BrowserMinVer:t.browserMinor,BrowserName:t.browserName,BrowserUserAgent:t.userAgent,Environment:e.environment,FarmLabel:e.farmLabel,IsAuthenticated:e.isAuthenticated?1:0,Market:e.market,Manifest:e.manifest,OSName:t.osName,OSVersion:t.osVersion,Session:e.session,SiteSubscriptionId:e.siteSubscriptionId||"",UserId:e.userId,Version:e.version,Workload:e.workload,SiteId:e.siteId,WebId:e.webId,WebTemplateId:e.webTemplateId},e.context||{});return e.farmLabel&&(n.FarmLabel=e.farmLabel),n}Object.defineProperty(t,"__esModule",{value:!0});var s,u=n(0),c=n(12),l=n(20),d=n(9),p=n(1),f=n(19),h=n(67),m=n(69),v=n(71),_=n(10),g="AriaBeacon",y={logStartEvents:!1,Init:i,updateContext:o,isInitialized:r};t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(34),i=n(1),o=n(40);!function(e){e[e.blocked=0]="blocked",e[e.exception=-1]="exception",e[e.timeout=-2]="timeout",e[e.abort=-3]="abort"}(t.XHRStatus||(t.XHRStatus={}));var a=function(){function e(t){this._async=new r.default(this);var n=t.url,i=t.requestTimeoutInMS,o=void 0===i?e.DEFAULT_TIMEOUT_MS:i,a=t.json,s=t.responseType,u=void 0===s?"":s,c=t.headers,l=void 0===c?{}:c,d=t.withCredentials,p=void 0!==d&&d,f=t.needsCors,h=void 0!==f&&f,m=t.onProgress,v=t.onUploadProgress,_=t.method,g=void 0===_?a?"POST":"GET":_;this._url=n,this._requestTimeoutInMS=o,this._postData=a,this._headers=l,this._method=g,this._withCredentials=p,this._needsCors=h,this._responseType=u,this._progressCallback=m,this._uploadProgressCallback=v}return e.prototype.abort=function(e){this._abortRequest()&&!e&&this._callFailureCallback(this._request,-3,!1)},e.prototype.start=function(e,t){var n=this;this._successCallback=e,this._failureCallback=t;var r=this,a=r._method,s=r._headers;try{this._request=this._getRequest();var u=this,c=u._progressCallback,l=u._uploadProgressCallback,d=u._request,p=u._responseType;c&&(d.onprogress=function(e){try{c(e)}catch(e){i.default.logError(e)}}),l&&(d.upload.onprogress=function(e){try{l(e)}catch(e){i.default.logError(e)}}),this._async.setTimeout(function(){n._completed||n._timeoutCallback()},this._requestTimeoutInMS),d.onreadystatechange=function(){if(!n._completed){var e=4;try{e=d.DONE||4}catch(e){}d.readyState===e&&n._requestEndCallback()}},d.open(a,this._url,!0),"withCredentials"in d&&(d.withCredentials=this._withCredentials),d.responseType=p;for(var f in s)d.setRequestHeader(f,s[f]);d.send(this._postData)}catch(e){i.default.logError(e,{origin:location?location.origin:"unknown",withCredentials:this._withCredentials,requestUrl:this._url,headers:o.safeSerialize(s),method:a}),this._abortRequest(),this._callFailureCallback(this._request,-1,!1)}},e.prototype._getRequest=function(){var e=this;if(!this._needsCors||!window.XDomainRequest)return new XMLHttpRequest;var t=new XDomainRequest;return t.setRequestHeader=function(){},t.onprogress=function(){},t.ontimeout=function(){},t.onload=function(){e._requestEndCallback()},t},e.prototype._abortRequest=function(){var e=!1;if(!this._completed){this._completed=!0,this._async.dispose();try{this._request&&this._request.abort()}catch(e){}e=!0}return e},e.prototype._timeoutCallback=function(){this._completed||(this._abortRequest(),this._callFailureCallback(this._request,-2,!0))},e.prototype._callSuccessCallback=function(e,t){try{this._successCallback&&this._successCallback(e,t)}catch(e){i.default.log(e)}},e.prototype._callFailureCallback=function(e,t,n){try{this._failureCallback&&this._failureCallback(e,t,n)}catch(e){i.default.log(e)}},e.prototype._requestEndCallback=function(){if(!this._completed){this._completed=!0;var e=-1;try{this._async.dispose();try{e=this._request.status}catch(e){}}catch(t){e=-1,i.default.log(t)}e<400&&e>0?this._callSuccessCallback(this._request,e):this._callFailureCallback(this._request,e,!1)}},e.DEFAULT_TIMEOUT_MS=3e4,e}();t.default=a},function(e,t,n){"use strict";function r(e,n,r){return n=n||t.DEFAULT_DELIMITER,Object.keys(e).map(function(n){var o=e[n];return o=o?o.toString():"",r||(o=i.default.encodeURIComponent(o)),n+t.KEYVALUE_DELIMITER+o}).join(n)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(41),o=n(26);t.deepCopy=o.deepCopy;var a=n(68);t.deepCompare=a.deepCompare;var s=n(17);t.safeSerialize=s.safeSerialize;var u=n(29);t.extend=u.assign,t.DEFAULT_DELIMITER="&",t.KEYVALUE_DELIMITER="=",t.serialize=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.encodeURIComponent=function(e,t,n,r){var i,o="",a=0,s=" \"%<>'&";if(!e)return"";var u=e.length;for(a=0;a<u;a++){var c=e.charCodeAt(a),l=e.charAt(a);if(t&&("#"===l||"?"===l)){o+=e.substr(a);break}if(n&&"&"===l)o+=l;else if(c<=127)r?o+=l:c>=97&&c<=122||c>=65&&c<=90||c>=48&&c<=57||t&&c>=32&&c<=95&&s.indexOf(l)<0?o+=l:c<=15?o+="%0"+c.toString(16).toUpperCase():c<=127&&(o+="%"+c.toString(16).toUpperCase());else if(c<=2047)i=192|c>>6,o+="%"+i.toString(16).toUpperCase(),i=128|63&c,o+="%"+i.toString(16).toUpperCase();else if(55296!=(64512&c))i=224|c>>12,o+="%"+i.toString(16).toUpperCase(),i=128|(4032&c)>>6,o+="%"+i.toString(16).toUpperCase(),i=128|63&c,o+="%"+i.toString(16).toUpperCase();else if(a<e.length-1){c=(1023&c)<<10,a++;var d=e.charCodeAt(a);c|=1023&d,c+=65536,i=240|c>>18,o+="%"+i.toString(16).toUpperCase(),i=128|(258048&c)>>12,o+="%"+i.toString(16).toUpperCase(),i=128|(4032&c)>>6,o+="%"+i.toString(16).toUpperCase(),i=128|63&c,o+="%"+i.toString(16).toUpperCase()}}return o},e.escapeUrlForCallback=function(t){var n=t.indexOf("#"),r=t.indexOf("?");if(n>0&&(-1===r||n<r)){var i=t.substr(0,n);r>0&&(i+=t.substr(r)),t=i}return e.encodeURIComponent(t,!0,!1,!0)},e.encodeRestUriStringToken=function(t){return t&&(t=t.replace(/'/g,"''"),t=t.replace(/%27/g,"%27%27"),t=e.encodeURIComponent(t)),t},e}();t.default=r},function(e,t,n){"use strict";function r(e){return!!e&&"function"==typeof e.addEventListener}function i(e){return!!e&&!!e.__events__}function o(e,t){var n=e,r=n.__declaredEvents=n.__declaredEvents||{};if("string"==typeof t)r[t]=!0;else for(var i=0;i<t.length;i++)r[t[i]]=!0}function a(e,t,n,o){var a;if(r(e)){if(document.createEvent){var s=document.createEvent("HTMLEvents");s.initEvent(t,o,!0),s.args=n,a=e.dispatchEvent(s)}}else for(;e&&!1!==a;)if(i(e)){var u=e.__events__,c=u[t];for(var l in c)for(var d=c[l],p=0;!1!==a&&p<d.length;p++){var f=d[p];f.objectCallback&&(a=f.objectCallback.call(f.parent,n))}e=o?e.parent:null}else e=null;return a}Object.defineProperty(t,"__esModule",{value:!0}),t.isDOMEventTarget=r,t.isEventTarget=i,t.declare=o,t.raise=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(22),o=n(11),a=n(20),s=n(44);!function(e){function t(){e.instance&&(e.instance.dispose(),e.instance=void 0)}function n(t,n){if(e.instance)throw new Error("The beaconCache has already been added to the logging manager with event name prefix "+t+".");e.instance=new u(t,n)}var r=new i.default(s.default.STORE_KEY,o.default.session);e.eventNamePrefix="",e.instance=null,e.handlers=null,e.dispose=t;var u=function(){function t(t,n){var r=this;e.eventNamePrefix=t,e.handlers=n,this._handler=function(e){r.addEvent(e)};for(var i=a.Manager.addLogHandler(this._handler),o=0;o<i.length;o++)this.addEvent(i[o])}return t.prototype.dispose=function(){a.Manager.removeLogHandler(this._handler);for(var e=0,t=Object.keys(this);e<t.length;e++){delete this[t[e]]}},t.prototype.addEvent=function(t){t.enabled&&s.default.processAndLogEvent({event:t,logFunc:function(e,t){var n=r.getValue(s.default.STORE_SIZE_KEY);n||(n=0),r.setValue(n.toString(),{name:e,props:t}),r.setValue(s.default.STORE_SIZE_KEY,++n)},eventNamePrefix:e.eventNamePrefix,handlers:e.handlers})},t}();e.addToLoggingManager=n}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(14),o=n(76),a=n(9),s=n(77),u=n(78),c=n(79),l=n(80),d=n(81),p=n(13),f=n(12),h=n(36),m=n(82),v=n(83);!function(e){function t(e){var t=e.event,l=e.eventNamePrefix,v=e.handlers,_=e.logFunc;if(!v.ignoredEventsHandler||!v.ignoredEventsHandler(t)){z||(z=!0,R=window._spPageContextInfo,R?(k=R.siteId?R.siteId.replace(B,""):"",A=R.webId?R.webId.replace(B,""):"",j=R.listId?R.listId.replace(B,""):"",L=R.groupId?R.groupId.replace(B,""):""):(k="",A="",j="",L=""));var y=p.Engagement.isTypeOf(t)?w(t):i.Qos.isTypeOf(t)?T(t,v.qosEventNameHandler||null,v.qosEventExtraDataHandler||null):o.PLT.isTypeOf(t)?P(t):s.UnhandledError.isTypeOf(t)?O(t):u.RequireJSError.isTypeOf(t)?C(t):c.CaughtError.isTypeOf(t)?D(t):d.Verbose.isTypeOf(t)?I(t):a.Beacon.isTypeOf(t)?x(t):h.RUMOneDataUpload.isTypeOf(t)?b(t):m.PageInit.isTypeOf(t)?E(t):null;y||(y=[{userEngagementData:{EngagementName:"UnknownEvent",Duration:0,LogType:0,Properties:JSON.stringify({name:t.eventName}),ClientTime:t.eventType===f.ClonedEventType.End?t.endTime:t.startTime,Source:U}}]);for(var S=0,M=y;S<M.length;S++){var V=M[S];if(V.debugData&&(V.debugData.Tag=g(V.debugData.Tag,l).replace(B,""),_(N,V.debugData)),V.userEngagementData){var q=l;p.Engagement.isTypeOf(t)&&"SPList"===q&&(q=r()),V.userEngagementData.EngagementName=g(V.userEngagementData.EngagementName,q).replace(B,""),i.Qos.isTypeOf(t)&&"SPList"===l&&(t.data.extraData.ListBaseTemplate=n()),_(F,V.userEngagementData)}V.rumOneData&&_(V.rumOneData.streamName,V.rumOneData.dictionary)}}}function n(){return R?R.listBaseTemplate:-1}function r(){var e=n();return K[e]||"SPList"}function _(e){var t=e;return t=t.replace("{",""),t=t.replace(/\"/gi,""),t=t.replace("}","")}function g(e,t){return t?t+"."+e:e}function y(e){return Q[e]||""}function b(e){if(!e.data)return[{userEngagementData:{EngagementName:"RUMOne.no_EventData",Duration:0,LogType:0,ClientTime:e.startTime,Source:U}}];var t=e.data;return[{rumOneData:{streamName:t.streamName,dictionary:t.dictionary}}]}function E(e){return[{userEngagementData:{EngagementName:"PageInit",Properties:e.data?JSON.stringify(e.data):"",Duration:0,LogType:0,ClientTime:e.startTime,Source:U}}]}function w(e){var t=[],n="no_EngagementName",r="",i=k,o=A,a=j,s=L;if(e.data){var u=e.data;if(i=u.siteId||i,o=u.webId||o,a=u.listId||a,s=u.groupId||s,n=u.name||n,u.experiment){var c=u.experiment,l=c.getExperimentData();t.push({userEngagementData:{EngagementName:S(l,c.IsExperimentOn()),Properties:JSON.stringify(l),Duration:0,LogType:0,ClientTime:e.startTime,Source:U,SiteId:i,WebId:o,ListId:a,GroupId:s}})}r=u.extraData?JSON.stringify(u.extraData):""}return t.push({userEngagementData:{EngagementName:n,Properties:r,Duration:0,LogType:0,ClientTime:e.startTime,Source:U,SiteId:i,WebId:o,ListId:a,GroupId:s}}),t}function S(e,t){return(e.name||"noExperimentData")+".Experiment"+(t?"Treatment":"Control")+")"}function T(e,t,n){var r={},i="no_QosName",o=e.data||null;o&&(o.name&&(i=o.name),t&&(i=t(e,i)),o.extraData=o.extraData||{},n&&n(e,o),o.extraData.appver=H);var a=0;return e.eventType===f.ClonedEventType.End&&e.startTime&&e.endTime&&(a=e.endTime-e.startTime),r.userEngagementData={EngagementName:i,Properties:o&&o.extraData?JSON.stringify(o.extraData):"",Duration:a,LogType:0,ClientTime:e.eventType===f.ClonedEventType.End?e.endTime:e.startTime,Source:V},[r]}function x(e){var t={},n=0;return e.eventType===f.ClonedEventType.End&&e.startTime&&e.endTime&&(n=e.endTime-e.startTime),t.userEngagementData={EngagementName:"Beacon",Properties:e.data?JSON.stringify(e.data):"no_EventData",Duration:n,LogType:0,ClientTime:e.eventType===f.ClonedEventType.End?e.endTime:e.startTime,Source:V},[t]}function P(e){if(!e.data)return[{userEngagementData:{EngagementName:"PLT.no_EventData",Duration:0,LogType:0,ClientTime:e.startTime,Source:U}}];for(var t=[],n=e.data,r="PLT."+n.name.replace(" ",""),i=JSON.stringify(n).split(","),o=0,a=0;a<i.length;a++){var s=_(i[a]),u=s.split(":");_(u[1])!==n.name&&(o="true"===u[1]?1:"false"===u[1]||"null"===u[1]?0:parseInt(u[1],10),t.push({userEngagementData:{EngagementName:r+"."+u[0],Properties:"appCacheHit"===u[0]?JSON.stringify(e.data):"",Duration:o,LogType:0,ClientTime:e.startTime,Source:U}}))}return t}function O(e){return[{userEngagementData:{EngagementName:"UnhandledError",Duration:0,LogType:0,ClientTime:e.startTime,Source:U},debugData:{Tag:"UnhandledError",Level:v.default.Normal,Message:e.data?JSON.stringify(e.data):"no_EventData",Misc:"",ClientTime:e.startTime}}]}function C(e){var t,n,r={},i="RequireJSError";if(e.data){t={};for(var o in e.data)"message"!==o?t[o]=e.data[o]:n=e.data[o]}return r.userEngagementData={EngagementName:i,Duration:0,LogType:0,ClientTime:e.startTime,Source:U},r.debugData={Tag:i,Level:v.default.Normal,Message:n||"no_ErrorMessage",Misc:t?JSON.stringify(t):"no_ErrorData",ClientTime:e.startTime},[r]}function D(e){var t={},n="CaughtError";if(l.QosError.isTypeOf(e))if(e.data){var r=e.data;n=r.name,r.resultCode&&(n+="."+r.resultCode),n+=y(r.resultType)}else n="QosErrorEvent.no_EventData";else t.userEngagementData={EngagementName:n,Duration:0,LogType:0,ClientTime:e.startTime,Source:U};var i=e.data||null;return t.debugData={Tag:n,Level:v.default.Normal,Message:i&&i.message||"",Misc:i&&i.stack?JSON.stringify(i.stack):"",ClientTime:e.startTime},[t]}function I(e){var t={},n="Verbose";if(e.data){var r=e.data;r.name&&(n=r.name+".Verbose")}else n+=".no_EventData";return t.debugData={Tag:n,Level:v.default.Low,Message:r.message,Misc:"",ClientTime:e.startTime},[t]}var M;e.STORE_KEY="SPCacheLogger",e.STORE_SIZE_KEY="Size";var R,k,A,j,L,U="ClientV2Engagement",N="ReliabilityLog",F="UserEngagement",V="ClientV2Reliability",B=/[^a-z0-9\.\_\-\+]+/gi,q=window._spModuleLink,H=q?q.buildNumber:"",z=!1;e.processAndLogEvent=t;var K={100:"ListNext",101:"DocsNext",102:"SurveyNext",103:"LinksNext",104:"AnnouncementsNext",107:"TasksNext",109:"PicLibNext"},Q=(M={},M[i.ResultTypeEnum.Success]=".Success",M[i.ResultTypeEnum.Failure]=".Failure",M[i.ResultTypeEnum.ExpectedFailure]=".ExpectedFailure",M)}(r||(r={})),t.default=r},function(e,t,n){"use strict";function r(e,t,n){var r=n,i=o.default.language;if(e)try{r=e.toLocaleString(i,t)}catch(n){r=e.toLocaleString([],t)}return r}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),o=n(46);i.__exportStar(n(21),t),t.getLocaleNumberString=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.invalidate=function(t){"undefined"!=typeof window&&(e.isRightToLeft=window.document&&"rtl"===document.documentElement.getAttribute("dir"),e.safeLeft=e.isRightToLeft?"right":"left",e.safeRight=e.isRightToLeft?"left":"right",t=t||window._spPageContextInfo&&window._spPageContextInfo.currentUICultureName,e.language=t||window.document&&(document.documentElement.getAttribute("lang")||document.documentElement.getAttribute("xml:lang"))||"en-us")},e}();r.invalidate(),t.default=r},function(e,t,n){"use strict";function r(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n].toLowerCase());return t}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(40),a=n(45);!function(e){e[e.scheme=0]="scheme",e[e.authority=1]="authority",e[e.path=2]="path",e[e.query=3]="query"}(i=t.UriPartial||(t.UriPartial={}));var s=/[;\/?:@&=$,]/,u=/[\/?]/,c=function(){function e(e,t){this._scheme="",this._user="",this._host="",this._port="",this._path="",this._pathSegments=[],this._pathEncoded="",this._query={},this._fragment="",t&&(this._queryCaseInsensitive=!!t.queryCaseInsensitive,this._pathCaseInsensitive=!!t.pathCaseInsensitive),this._parseURI(e)}return e.concatenate=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var r="",i=0;i<t.length;i++){var o=t[i];i>0&&(o=e.ensureNoPrecedingSlash(o)),i<t.length-1&&(o=e.ensureTrailingSlash(o)),r+=o}return r},e.ensureNoPrecedingSlash=function(e){return"/"===e[0]?e.substr(1):e},e.ensureTrailingSlash=function(e){return"/"!==e[e.length-1]?e+"/":e},e.prototype.getScheme=function(){return this._scheme},e.prototype.setScheme=function(e){this._scheme=e},e.prototype.getAuthority=function(){return this._getAuthority(!1)},e.prototype.setAuthority=function(e){this._parseAuthority(e)},e.prototype.getUser=function(){return this._user},e.prototype.getHost=function(){return this._host},e.prototype.getPort=function(){return this._port},e.prototype.getPath=function(e){var t=this._path;return Boolean(e)&&null!==t&&t.lastIndexOf("/")===t.length-1&&(t=t.slice(0,-1)),t},e.prototype.getLeftPart=function(e){var t=this._scheme+"://";return e===i.authority&&(t+=this.getAuthority()),e===i.path&&(t+=this.getPath()),e===i.query&&(t+=this.getQuery()),t},e.prototype.setPath=function(e){e&&"/"!==e[0]&&(e="/"+e),this._parsePath(e)},e.prototype.getPathSegments=function(){return this._pathSegments},e.prototype.getLastPathSegment=function(){var e=this._pathSegments;return e[e.length-1]||""},e.prototype.getQuery=function(e){return this._serializeQuery(e)},e.prototype.setQuery=function(e){this.setQueryFromObject(this._deserializeQuery(e))},e.prototype.getQueryAsObject=function(){return this._query},e.prototype.setQueryFromObject=function(e){this._query={};for(var t in e)e.hasOwnProperty(t)&&this.setQueryParameter(t,e[t])},e.prototype.getQueryParameter=function(e){var t=null,n=this._query;if(this._queryCaseInsensitive){e=e.toLowerCase();for(var r in n)n.hasOwnProperty(r)&&r.toLowerCase()===e&&(t=n[r])}else t=n[e];return t||null},e.prototype.setQueryParameter=function(e,t,n){void 0===n&&(n=!0);var r=this._decodeQueryString(t);(r||n)&&(this._query[this._decodeQueryString(e)]=r)},e.prototype.removeQueryParameter=function(e){delete this._query[this._decodeQueryString(e)]},e.prototype.getFragment=function(){return this._fragment},e.prototype.setFragment=function(e){"#"===e[0]&&(e=e.substring(1)),this._fragment=this._decodeQueryString(e)},e.prototype.equals=function(e){return a.equalsCaseInsensitive(this._scheme,e.getScheme())&&this._user===e.getUser()&&a.equalsCaseInsensitive(this._host,e.getHost())&&this._port===e.getPort()&&this._fragment===e.getFragment()&&this._equalsCaseAppropriate(this.getPath(!0),e.getPath(!0),this._pathCaseInsensitive)&&this._equalsCaseAppropriate(this.getQuery(),e.getQuery(),this._queryCaseInsensitive)},e.prototype.equivalent=function(e){return a.equalsCaseInsensitive(this._scheme,e.getScheme())&&a.equalsCaseInsensitive(this._user,e.getUser())&&a.equalsCaseInsensitive(this._host,e.getHost())&&a.equalsCaseInsensitive(this._port,e.getPort())&&a.equalsCaseInsensitive(this.getPath(!0),e.getPath(!0))&&o.deepCompare(r(this.getQueryAsObject()),r(e.getQueryAsObject()))&&a.equalsCaseInsensitive(this._fragment,e.getFragment())},e.prototype.toString=function(e){return this._getStringInternal(!0,e)},e.prototype.getDecodedStringForDisplay=function(){return this._getStringInternal(!1)},e.prototype.getStringWithoutQueryAndFragment=function(){return this._getStringWithoutQueryAndFragmentInternal(!0)},e.prototype._equalsCaseAppropriate=function(e,t,n){return n?a.equalsCaseInsensitive(e,t):e===t},e.prototype._getStringInternal=function(e,t){var n=this._getStringWithoutQueryAndFragmentInternal(e,t),r=this.getQuery(e);return r&&(n+="?"+r),this._fragment&&(n+="#"+(e?encodeURIComponent(this._fragment):this._fragment)),n},e.prototype._getStringWithoutQueryAndFragmentInternal=function(e,t){var n="";this._scheme&&(n+=(e?encodeURIComponent(this._scheme):this._scheme)+":");var r=this._getAuthority(e,t);return r&&(n+="//"+r),this._pathEncoded&&(n+=e?this._pathEncoded:this._path),n},e.prototype._deserializeQuery=function(e){var t={};0===e.indexOf("?")&&(e=e.substring(1));for(var n=0,r=e.split(/[;&]+/);n<r.length;n++){var i=r[n],o=i.indexOf("=");o<0&&(o=i.length),o>0&&(t[i.substr(0,o)]=i.substr(o+1))}return t},e.prototype._serializeQuery=function(e){var t="";for(var n in this._query)if(this._query.hasOwnProperty(n)){var r=n,i=this._query[n];e&&(r=encodeURIComponent(r),i=encodeURIComponent(i)),t+=null===i||""===i?r+"=&":r+"="+i+"&"}return""!==t&&(t=t.slice(0,-1)),t},e.prototype._parseURI=function(e){var t=e,n=t.indexOf("#");if(n>=0){var r=t.substring(n+1);this.setFragment(r),t=t.substring(0,n)}var i=t.search(s);if(!(i>=0))return void this.setPath(t);":"===t[i]&&(this.setScheme(t.substring(0,i)),t=t.substring(i+1));var o="";if(0===t.indexOf("//")){t=t.substring(2);var a=t.search(u);if(a>=0?(o=t.substring(0,a),t=t.substring(a)):(o=t,t=""),this.setAuthority(o),!t)return void this.setPath("")}var c=t.indexOf("?");c>=0&&(this.setQuery(t.substring(c+1)),t=t.substring(0,c)),this.setPath(t)},e.prototype._parseAuthority=function(e){this._host=e;var t=e.lastIndexOf("@");t>=0&&(this._host=this._host.substring(t+1));var n=this._host.indexOf(":");if(!(t<0&&n<0)){var r=e;t<0?this._host=r:(this._user=r.substring(0,t),this._host=r.substring(t+1)),n>=0&&(this._port=this._host.substring(n+1),this._host=this._host.substring(0,n)),this._user=decodeURIComponent(this._user),this._host=decodeURIComponent(this._host)}},e.prototype._parsePath=function(e){this._path=decodeURIComponent(e);var t=this._pathSegments=[];this._pathEncoded=e;for(var n=e.split("/"),r=0;r<n.length;++r)t[r]=decodeURIComponent(n[r]);""===t[0]&&t.shift(),""===t[t.length-1]&&t.pop()},e.prototype._getAuthority=function(e,t){void 0===t&&(t={});var n,r,i,o=t&&t.doNotPercentEncodeHost,a="";return e?(n=encodeURIComponent(this._user).replace("%3A",":"),r=o?this._host:encodeURIComponent(this._host),i=encodeURIComponent(this._port)):(n=this._user,r=this._host,i=this._port),""!==n&&(a=n+"@"),""!==this._host&&(a+=r),""!==this._port&&(a+=":"+i),a},e.prototype._decodeQueryString=function(e){var t=e;try{t=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}return t},e}();t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.Unknown=0]="Unknown",e[e.User=1]="User",e[e.Site=2]="Site"}(t.ExperimentTypeEnum||(t.ExperimentTypeEnum={}))},function(e,t,n){"use strict";function r(e){var t={};if(e)for(var n=e.split("&"),r=0;r<n.length;r++){var i=n[r].split("=");void 0!==i[1]&&(i[1]=i[1].replace(/\+/g," "),t[i[0]]=decodeURIComponent(i[1]))}return t}function i(e){return e.substring(e.indexOf("?")+1)}function o(e){return e.substring(0,e.indexOf("?"))}Object.defineProperty(t,"__esModule",{value:!0}),t.deserializeQuery=r,t.getQueryStringFromUrl=i,t.getUrlWithoutQueryString=o},function(e,t,n){"use strict";function r(e){var t=document.cookie.match("(^|;)\\s*"+e+"\\s*=\\s*([^;]+)");return t?t.pop():""}function i(e){var t=[],n=[];for(var r in e)(e[r]?t:n).push(r);document.cookie=g+"="+t.join(",")+";path=/",document.cookie=y+"="+n.join(",")+";path=/"}function o(){var e={},t=r(g);if(t)for(var n=0,i=t.split(",");n<i.length;n++){var o=i[n];e[o]=!0}var a=r(y);if(a)for(var s=0,u=a.split(",");s<u.length;s++){var o=u[s];e[o]=!1}return e}Object.defineProperty(t,"__esModule",{value:!0});var a=n(51),s=n(24),u=n(49),c=n(22),l=n(11),d=n(23);t.ENABLE_PARAM_KEY="enableFeatures",t.DISABLE_PARAM_KEY="disableFeatures";var p="Store",f={ODB:587,ODC:"AllowFeatureOverrides",Fallback:!1},h={ODB:357,ODC:null,Fallback:!1},m={ODB:342,ODC:null,Fallback:!1},v={},_=new c.default("FeatureOverrides",l.default.session),g="FeatureOverrides_"+t.ENABLE_PARAM_KEY,y="FeatureOverrides_"+t.DISABLE_PARAM_KEY;!function(){var e=d.Killswitch.isActivated("CA76C674-5DEE-4C8A-9EDF-82C275E0CF01","11/27/2018","Don't save enable/disable features query params to session storage");if(e){var n=_.getValue(p);v=n||{}}else v=o();var r=location.search?location.search.substring(1):"",a=u.deserializeQuery(r),s=a[t.ENABLE_PARAM_KEY];if(s)for(var c=0,l=s.split(",");c<l.length;c++){var f=l[c];v[f]=!0}var h=a[t.DISABLE_PARAM_KEY];if(h)for(var m=0,g=h.split(",");m<g.length;m++){var f=g[m];v[f]=!1}e?_.setValue(p,v):i(v)}();var b=function(){function e(){}return Object.defineProperty(e,"Overrides",{get:function(){return v},enumerable:!0,configurable:!0}),e.evaluateCanOverride=function(){e.CanOverride=a.default.isFeatureEnabled(f)||a.default.isFeatureEnabled(h)||a.default.isFeatureEnabled(m)},e.isFeatureEnabled=function(t,n){if(e.CanOverride){if(t.ODB in v)return v[t.ODB];if(t.ODC in v)return v[t.ODC]}return n?s.isSPFeatureEnabled(t,n):a.default.isFeatureEnabled(t)},e.AllowFeatureOverrides=f,e.SPODebugOnlyCookieRedirect=h,e}();t.default=b,b.evaluateCanOverride()},function(e,t,n){"use strict";function r(){i=window.PageContext;var e=window.Flight;o=e&&e.Ramps,a=window.FilesConfig;var t=window.Flighting,n=window._spPageContextInfo;!s&&n&&(!n.ExpFeatures&&t&&t.ExpFeatures&&(n.ExpFeatures=t.ExpFeatures),l.initSPExpFeatures(n.ExpFeatures)),c=!0}Object.defineProperty(t,"__esModule",{value:!0});var i,o,a,s,u=n(24),c=!1,l=function(){function e(){}return e.initSPExpFeatures=function(e){s=e},e.isFeatureEnabled=function(e){c||r();var t=!!e.Fallback,n=e.ODB,l=e.ODC,d=e.OneDrive;return void 0!==n&&s&&(t=u.isSPFeatureEnabled(e,s)),void 0!==l&&a&&("boolean"==typeof l?t=l:o&&o[l]?t=!0:a&&a[l]&&(t=!0)),d&&i&&(t=d),t},e.On={Fallback:!0},e.Off={},e}();t.default=l},function(e,t,n){"use strict";function r(e){return"function"==typeof e.dispose}function i(e,t){var n=e,r=n.dispose;return("function"==typeof r&&r.disposalChain||o(n)).addCallback(t),n}function o(e){var t=new a(e),n=e.dispose,r=function(){t.dispose(),n&&(e.dispose=n,e.dispose())};return e.dispose=r,r.disposalChain=t,t}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e){this._callbacks=[],this._owner=e}return e.prototype.addCallback=function(e){this._callbacks.push(e)},e.prototype.dispose=function(){for(var e;e=this._callbacks.pop();)e.call(this._owner)},e}();t.isDisposable=r,t.hook=i},function(e,t,n){"use strict";function r(e){return{get:function(){return new I(this.key,this.flags|e)}}}function i(e){return e===t.resourceScopeKey}function o(e,t){var n=function(n){return e.call(this,n,t)||this};return n.prototype=e.prototype,n}function a(e){return e.length<1?" Consumed directly.":e.concat([""]).reverse().join("\n  Required by ")}function s(e){return e.length<2?" Loaded directly.":[""].concat(e.slice(1)).join("\n  Required by ")}function u(e,t){return new Error(e+" is being consumed, but is not available in the current scope.\n  1) Check to ensure that the dependency on this resource (and each step up the chain) is properly declared.\n  2) If availability is expected, check to see if the target resource has a dependency that is only available in a child scope."+a(t))}function c(e,t){return new Error(e+" is being consumed synchronously, but was exposed asynchronously and has not been loaded. Either:\n  1) Ensure that the root call that is requesting this resource is a consumeAsync(). Or\n  2) Ensure that the dependency on this resource is properly declared, so that it can be picked up by an earlier consumeAsync() or load() call."+a(t))}function l(e,t){return new Error(e+" is being loaded, but has no factory / loader.Check to ensure that either: \n  1) "+e+" is defined with a 'factory' or 'loader' specified.\n  2) A higher - level component calls 'expose', 'exposeFactory', or 'exposeAsync' for "+e+"."+s(t))}function d(e){return{handle:e,error:void 0}}function p(e){return{handle:void 0,error:e}}function f(e){var t=e.flags;return 16&t?new I(e.key,-18&t):e}function h(e){if(e instanceof I||e instanceof D)throw new Error("Cannot consume "+e+" from a disposed ResourceScope.");throw new Error("Cannot resolve resources from a disposed ResourceScope.")}function m(){throw new Error("Cannot load a resource from a ResourceScope that has been disposed.")}function v(){}function _(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];if(r)return S.default.reject(r)}return S.default.reject(new Error("A dependency could not be loaded."))}function g(e,t){return function(n){if(Array.isArray(n)&&"function"==typeof n[0]){if(4&e)return;if(t)return Promise.reject(n);throw n[0](n[1],n[2])}return Promise.reject(n)}}function y(){this.resources.dispose()}function b(e){var t=new T.default;return e.then(function(e){return t.complete(e)},function(e){return t.error(e)}),t.getPromise()}Object.defineProperty(t,"__esModule",{value:!0});var E,w=n(0),S=n(10),T=n(54),x=n(25),P=n(55),O=0;!function(e){e[e.none=0]="none",e[e.lazy=1]="lazy",e[e.local=2]="local",e[e.optional=4]="optional",e[e.bypass=8]="bypass",e[e.async=16]="async",e[e.notAsync=-18]="notAsync",e[e.handleViral=16]="handleViral",e[e.loaderViral=8]="loaderViral"}(E||(E={}));var C={async:r(17),lazy:r(1),local:r(2),optional:r(4),bypass:r(8)},D=function(){function e(e){this.id=++O,"string"==typeof e?(this.name=e,this.factory=null,this.loader=null):(this.name=e.name,this.factory=e.factory,this.loader=e.loader)}return Object.defineProperty(e.prototype,"key",{get:function(){return this},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return"Resource #"+this.id+' "'+this.name+'"'},e}();t.ResourceKey=D,Object.defineProperty(D.prototype,"flags",{value:0}),Object.defineProperties(D.prototype,C);var I=function(){function e(e,t){this.key=e,this.flags=t}return e.prototype.toString=function(){var e=this.flags;return this.key+(16&e?".async":1&e?".lazy":"")+(2&e?".local":"")+(4&e?".optional":"")+(8&e?".bypass":"")},e}();Object.defineProperties(I.prototype,C);var M=function(){function e(e){this._value=e,this.dependencies={}}return e.prototype.create=function(){return{instance:this._value}},e}();t.ConstantResourceFactory=M,t.resourceScopeKey=new D({name:"resources"}),t.asyncLoadBarrierKey=new D({name:"asyncLoadBarrier"});var R=function(){function e(e){this._loader=e,this._cached=null}return e.prototype.load=function(){var e=this;if(this._cached)return this._cached;var t=this._cached=b(this._loader.load());return t.then(function(){e._loader=null},function(){e._cached=null}),t},e}(),k=function(){function e(e,t){this.entry=e,this.manager=t,this.instance=null}return e.prototype.getInstance=function(e,t){if(this.instance)return this.instance;var n=this.manager,r=this.entry.factory,i=r.create(n.resolve(r.dependencies,t)),o=this.instance=i.instance;return i.disposable&&n.scope.attach(i.disposable),o},e.prototype.promote=function(t){var n=this.entry;return new e({manager:t,loader:n.loader,factory:n.factory})},e}();t.getResolvedConstructor=o;var A=function(){function e(t){this._handles={},this._isLocked=!1,this._loader=null;var n;if(t instanceof e){if(t.isDisposed)throw new Error("Parent ResourceScope has already been disposed!");n=t.options,this._parent=t,this._level=t._level+1}else n=t||{},this._parent=null,this._level=0;this.scope=new x.default,this.options=n}return Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.scope.isDisposed},enumerable:!0,configurable:!0}),e.prototype.block=function(e){return this._expose(e)},e.prototype.isDescendantOf=function(e){return this._level>e._level},e.prototype.getHandle=function(e){for(var t=this,n=e.id;!(n in t._handles)&&t._parent;)t=t._parent;var r=t._handles;return r[n]||this.options.useFactoriesOnKeys&&(e.factory&&(r[n]=new k({factory:e.factory,manager:t}))||e.loader&&(r[n]=new k({loader:new R(e.loader),manager:t})))},e.prototype.expose=function(e,t,n){return this._expose(e,function(e){return new k({factory:t.factory,loader:t.loader,manager:e},n&&e)})},e.prototype.getLoader=function(){return this._loader?this._loader:(this.lock(),this._loader=new j(this))},e.prototype.dispose=function(){this.scope.dispose(),this._handles={},this._loader=null,this.consume=this.resolve=h,this.getLoader=m},e.prototype.bind=function(e){var t=this.getHandle(e);return t?this._expose(e,function(e){return t.promote(e)}):this},e.prototype.lock=function(){this._isLocked=!!this.options.lockResourcesForChildren},e.prototype.consume=function(e,t){var n=this;this.lock();var r=e.flags,o=e.key;if(16&r){var a,s=f(e),u=function(){return n.consume(s,t)};if(i(o))return function(){return a||(a=Promise.resolve(u()))};var c=this._getValidHandle(e,0,[]);if(c.handle)return function(){return a||(a=b(n.getLoader().loadAsync(s,0,[])).then(u,g(r)))};if(4&r)return function(){return Promise.resolve(void 0)};var l=c.error;throw l[0](l[1],l[2])}var d;if(i(o)){var p;d=function(){return p||(p=n.scope.attach(new L(n,t||{owner:o+" "}))),p}}else{var c=this._getValidHandle(e,0,[]),h=c.handle;if(h)d=function(){return h.getInstance(o,t||{owner:o+" "})};else if(!(4&r)){var l=c.error;throw l[0](l[1],l[2])}}return 1&r?d:d&&d()},e.prototype.isExposed=function(e){return!!i(e.key)||!!this._getValidHandle(e,0,[]).handle},e.prototype.resolve=function(e,t){for(var n={},r=0,i=Object.keys(e);r<i.length;r++){var o=i[r];e[o]&&(n[o]=this.consume(e[o],t))}return n},e.prototype._getValidHandle=function(e,t,n){var r=e.key,o=r.id;if(n.indexOf(r)>=0)throw new Error(r+" has a circular dependency."+a(n)+" ");var s=this._handles[o];if(s&&s.manager)return d(s);var l=this.getHandle(r);if(!l)return p([u,e,n]);var f=e.flags|t,h=l.entry,m=h.factory;if(16&f&&h.loader)return d(l);if(!m)return p([c,e,n]);for(var v=n.push(r)-1,_=l.manager,g=2&f?this:_||h.manager,y=m.dependencies||{},b=0,E=Object.keys(y);b<E.length;b++){var w=E[b],S=y[w];if(S&&!i(S.key)){var T=this._getValidHandle(S,16&f,n),x=T.handle;if(x){var P=x.manager||x.entry.manager;P.isDescendantOf(g)&&(g=P)}else if(!(4&S.flags)||T.error[0]===c&&this.options.errorOnOptionalAsyncOnly)return T}}return n.splice(v),_&&_===g||(l=new k(h,g),g._handles[o]=l),this._handles[o]=l,d(l)},e.prototype._expose=function(t,n){if(this.isDisposed)throw new Error("Cannot expose a resource on a ResourceScope that has been disposed.");if(i(t))throw new Error("It is invalid to expose `resourceScopeKey`");var r=t.id,o=this._isLocked?this.scope.attach(new e(this)):this,a=o._handles;if(a[r]&&this.options.noDoubleExpose)throw new Error(t+" has already been exposed / consumed at this scope.");return a[r]=n?n(o):void 0,o},e}(),j=function(){function e(e){this._handleManager=e,this._loadState={},this._root=e.consume(t.asyncLoadBarrierKey.optional)}return e.prototype.loadAsync=function(e,t,n){return i(e.key)?S.default.resolve():this._loadAsync(e,t,[e].concat(n)).catch(g(e.flags,!0))},e.prototype.loadAllAsync=function(e,t,n){if(e){var r=Object.keys(e),i=r.length;if(i>0){for(var o=[];i--;){var a=r[i],s=e[a];s&&o.push(this.loadAsync(s,t,n))}return S.default.all(o).then(v,_)}}return S.default.resolve()},e.prototype._loadAsync=function(e,t,n){var r=this,i=e.key,o=i.id,a=this._loadState,s=a[o];if(s)return s;var u=e.flags|t;if(16&u)return S.default.resolve();var c=this._handleManager,d=c.getHandle(i);if(!d)return a[o]=S.default.reject([l,e,n]);a[o]=S.default.resolve();var p=d.entry,f=p.factory;if(f)return a[o]=this.loadAllAsync(f.dependencies,8&u,n);var h=p.loader;if(!h)return a[o]=S.default.reject([l,e,n]);var m=this._root,v=!(8&u)&&m&&m.wait()||S.default.resolve();return a[o]=v.then(function(){return h.load()}).then(function(e){p.factory=e;var t=e.dependencies;if(t)return r.loadAllAsync(t,8&u,n)})},e}(),L=function(){function e(t,n){var r,i;t instanceof e?(i=t._handleManager,r=t._owner):t instanceof A?i=t:n=t||n;var o=new x.default;if(i){if(i.scope.isDisposed)throw new Error("Parent ResourceScope has already been disposed.");i.lock(),i.options.lockResourcesForChildren||(this._forkOnWrite=!0)}this._handleManager=i||(i=o.attach(new A(n))),this._scope=o;var a=n?n.owner:"";this._owner=r?r+" > "+a+" ":a}return e.prototype.consume=function(e){return this._handleManager.consume(e)},e.prototype.consumeAsync=function(e){var t=this._handleManager,n=f(e);return b(t.getLoader().loadAsync(n,0,[])).then(function(){return t.consume(n)}).catch(g(n.flags))},e.prototype.load=function(e){return b(this._handleManager.getLoader().loadAllAsync(e,0,[])).catch(g(0))},e.prototype.exposeAsync=function(e,t){this._expose(e,{loader:new R(t)})},e.prototype.exposeFactory=function(e,t){this._expose(e,{factory:t})},e.prototype.expose=function(e,t){return this._expose(e,{factory:new M(t)},t),t},e.prototype.block=function(e){this._handleManager=this._prepareWrite().block(e)},e.prototype.bind=function(e){this._handleManager=this._prepareWrite().bind(e)},e.prototype.isDefined=function(e){var t=this._handleManager;return!t.isDisposed&&!!t.getHandle(e)},e.prototype.isExposed=function(e){var t=this._handleManager;return!t.isDisposed&&t.isExposed(e)},e.prototype.injected=function(t,n){void 0===n&&(n={});var r=n.injectChildResourceScope,i={owner:n.owner||t.name},o=r?this._scope.attach(new e(this,i)):this,a=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.resources=o;var i=t.apply(this,e)||this;return r&&P.hook(i,y),i};return a.prototype=t.prototype,a},e.prototype.resolve=function(e){return this._handleManager.resolve(e)},e.prototype.resolveAsync=function(e){var t=this;return this.load(e).then(function(){return t.resolve(e)})},e.prototype.resolved=function(e,t){return o(e,this.resolve(w.__assign({},e.dependencies||{},t||{})))},e.prototype.resolvedAsync=function(e,t){var n=this;return this.load(w.__assign({},e.dependencies||{},t||{})).then(function(){return n.resolved(e,t)})},e.prototype.dispose=function(){this._scope.dispose()},e.prototype._expose=function(e,t,n){this._handleManager=this._prepareWrite().expose(e,t,n)},e.prototype._prepareWrite=function(){return this._forkOnWrite?(this._forkOnWrite=!1,this._scope.attach(new A(this._handleManager))):this._handleManager},e}();t.ResourceScope=L,t.default=L},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(10),i=function(){function e(e){this._promise=new r.SignalPromise(e)}return e.prototype.getPromise=function(){return this._promise},e.prototype.cancel=function(){this._promise.cancel()},e.prototype.complete=function(e){this._promise._completed(e)},e.prototype.error=function(e){this._promise._error(e)},e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(52);t.isDisposable=r.isDisposable,t.hook=r.hook},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e[e.File=0]="File",e[e.Folder=1]="Folder",e[e.Media=2]="Media",e[e.OneNote=3]="OneNote",e[e.Unknown=4]="Unknown",e[e.Error=5]="Error",e[e.App=6]="App",e[e.Subsite=7]="Subsite",e[e.Shortcut=8]="Shortcut"}(r=t.ItemType||(t.ItemType={})),t.default=r},function(e,t,n){"use strict";function r(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),r(n(58)),r(n(86))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(12);t.addEventProps=r.addEventProps,t.ClonedEventType=r.ClonedEventType,t.ValidationErrorType=r.ValidationErrorType,t.AccountType=r.AccountType,t.EventBase=r.EventBase;var i=n(13);t.Engagement=i.Engagement;var o=n(59);t.Nav=o.Nav;var a=n(60);t.PLTHttpRequest=a.PLTHttpRequest;var s=n(14);t.Qos=s.Qos;var u=n(62);t.ResultTypeEnum=u.ResultTypeEnum;var c=n(63);t.APICallPerformanceData=c.default;var l=n(38);t.AriaLoggerCore=l.default;var d=n(73);t.Beacon=d.default;var p=n(43);t.BeaconCache=p.default;var f=n(84);t.ControlPerformanceData=f.default;var h=n(85);t.CorrelationVector=h.default;var m=n(1);t.ErrorHelper=m.default;var v=n(35);t.PageTransitionType=v.default;var _=n(18);t.RumOneLogger=_.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.Nav=r.createSingleEvent({eventName:"Nav,",shortEventName:"Nav"},{viewParams:4,url:1}),t.default=t.Nav},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.PLTHttpRequest=r.createSingleEvent({eventName:"PLTHttpRequest,",shortEventName:"PLTHttpRequest",samplingFeature:{ODB:!0,ODC:"PLTHttpRequestSampling",Fallback:!1}},{startTime:2,url:1,duration:2}),t.default=t.PLTHttpRequest},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){if(e<=0)throw new Error("Size must be positive");this._size=e,this._buffer=new Array(e),this._length=0,this._head=-1}return e.prototype.push=function(e){this._length<this._size&&this._length++,this._head++,this._head===this._size&&(this._head=0),this._buffer[this._head]=e},e.prototype.popOldest=function(){if(0===this._length)return null;var e=(this._head-this._length+1+this._size)%this._size;return this._length--,this._buffer[e]},e}();t.CircularBuffer=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(6),t)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18);t.default=r.APICallPerformanceData},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){function t(e){return n=RegExp(e+"(\\d+)([\\d.]*)").exec(p)}e||("undefined"!=typeof window?e=window&&window.navigator&&navigator.userAgent:"undefined"!=typeof self&&(e=self&&self.navigator&&navigator.userAgent),e=e||"");var n,r,i,o,a,s,u,c,l,d=e,p=e.toLowerCase();t("msie ")?(r=!0,i=!!n&&"9"===n[1]):t("trident.*rv:")?r=!0:t("edge/")?o=!0:t("edg/")?a=!0:t("fxios|firefox/")?s=!0:t("(?:chrome|crios)/")?u=!0:/safari\/(\d+)/.test(p)&&(c=!0,t("version/")),RegExp("electron/(\\d+)([\\d.]*)").exec(p)&&(l=!0);var f=n&&parseInt(n[1],10)||0,h=n&&n[2]&&n[2].substr(1)||"0",m=/windows phone|wpdesktop/.test(p),v=m||/ipad|iphone|ipod|android/.exec(p),_=v&&v[0],g="android"===_,y="ipad"===_,b=!!_&&!g,E=!v&&p.indexOf("macintosh")>-1,w=!v&&p.indexOf("windows nt")>-1,S=p.indexOf("winappwipenabled")>-1,T=!1,x=!1,P=!1,O=!1;if("undefined"!=typeof window&&window.document||"undefined"!=typeof self&&self.document){var C=document.createElement("style");C.type="text/css",T=!C.styleSheet,x="addBehavior"in document.createElement("div");var D=document.createElement("input");D.type="file";var I=window.File,M=I&&I.prototype;O=!(!M||!(M.slice||M.mozSlice||M.webkitSlice)),P="webkitdirectory"in D&&!l}var R=/[\s\(](os|os x|windows (?:phone|nt)|android) ([\d._]+)/.exec(p);return{isChrome:!!u,isEdge:!!o,isEdgeChromium:!!a,isFirefox:!!s,isIE:!!r,isIE9:!!i,isSafari:!!c,isElectron:!!l,browserName:r?"IE":o?"Edge":a?"EdgeChromium":u?"Chrome":s?"Firefox":c?"Safari":"NA",browserMajor:f,browserMinor:h,isAndroid:g,isIOS:b,isMac:E,isWindows:w,isWinPhone:m,osVersion:R?R[2]:"NA",osName:w?"Windows":m?"Windows Phone":E?"OSX":b?"IOS":g?"Android":"NA",isWindows81:!v&&/windows (?:8\.1|nt 6\.3)/.test(p),isWindows10:!v&&p.indexOf("windows nt 10")>-1,isWindows7:!v&&p.indexOf("windows nt 6.1")>-1,isMobile:!!v,isIPad:y,isWinAppWipEnabled:S,areCSS3TransitionsSupported:!r||f>9,areTouchEventsSupported:"undefined"!=typeof window?"ontouchstart"in window:"undefined"!=typeof self&&"ontouchstart"in self,isFolderUploadSupported:P,isHtml5FileUploadSupported:O,isRetinaSupported:"undefined"!=typeof window?window.devicePixelRatio>1:!("undefined"==typeof self||!self.devicePixelRatio)&&self.devicePixelRatio>1,isUnlimitedStyleSheetsSupported:T,isWebDavSupported:x,userAgent:d}}return e}();t.PlatformDetection=r},function(e,t,n){"use strict";function r(e,t){var n=u(e);(null===t||void 0===t||d<t)&&(l?c.mark(n):p.push({name:n,startTime:Date.now()}),d++)}function i(e,t,n){if(l&&o(t)>0&&o(n)>0)try{c.measure(u(e),u(t),u(n))}catch(e){}}function o(e){var t=u(e);if(l){var n=c.getEntriesByName(t);return n&&n.length>0?Math.round(n[0].startTime):NaN}var r=p.filter(function(e){return e.name===t})[0];return r&&r.startTime}function a(e){var n=[];e&&(n=e.map(u)),l?c.getEntriesByType("mark").filter(function(e){return n.length>0?n.indexOf(e.name)>=0:0===e.name.lastIndexOf(t.MARKER_PREFIX,0)}).forEach(function(e){c.clearMarks(e.name)}):p=[]}function s(){return l?c.getEntriesByType("mark").filter(function(e){return 0===e.name.lastIndexOf(t.MARKER_PREFIX,0)}):p}function u(e){return 0===e.lastIndexOf(t.MARKER_PREFIX,0)?e:t.MARKER_PREFIX+e}Object.defineProperty(t,"__esModule",{value:!0});var c=window.performance,l=!!c&&"function"==typeof c.mark&&"function"==typeof c.clearMarks&&"function"==typeof c.now;t.HighResolutionTimingSupported=l,t.MARKER_PREFIX="EUPL.";var d=0,p=window._perfMarks=window._perfMarks||[];t.mark=r,t.measure=i,t.getMarkerTime=o,t.clearMarks=a,t.getAllMarks=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(32),t)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=(n(1),function(){function e(e,t,n,r,i){this._endpointUrl=e.callbackEndpoint.authority+e.callbackEndpoint.path;var o={};if(i)for(var a=0;a<i.length;++a)o[i[a].EventType]=o[i[a].EventType]+1||1;var s={TelemetryTenantId:e.telemetryTenantToken.substring(0,32),AppVersion:e.appVersion,EventType:t,StatusCode:n,EventCount:i?i.length:0,Timestamp:r,Environment:e.environment||"",DatapointSchemaVersion:"1.0",TelemetrySource:"Aria",EventSummary:o,Workload:e.workload||"",FarmLabel:e.farmLabel||""};this._dataCompletenessJson=JSON.stringify(s)}return Object.defineProperty(e.prototype,"endpointUrl",{get:function(){return this._endpointUrl},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataCompletenessJson",{get:function(){return this._dataCompletenessJson},enumerable:!0,configurable:!0}),e.prototype.send=function(){new r.default({method:"POST",url:this._endpointUrl,json:this._dataCompletenessJson,requestTimeoutInMS:1e3}).start(function(e,t){},function(e,t,n){})},e}());t.DataCompletenessInfo=i},function(e,t,n){"use strict";function r(e,t,n){function r(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if("object"!=typeof e||"object"!=typeof t)return!1;var n=Object.keys(e).sort(),s=Object.keys(t).sort();return n.length===s.length&&!!n.every(function(n,u){if(n!==s[u])return!1;if("function"==typeof e[n]||"function"==typeof t[n])return!0;if(a(e[n],t[n]))return!0;if("object"==typeof e[n]){if(-1!==i.indexOf(e[n]))throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: "+e+", property: "+n);if(i.push(e[n]),-1!==o.indexOf(t[n]))throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: "+t+", property: "+n);return o.push(t[n]),r(e[n],t[n])?(i.pop(),o.pop(),!0):!1}return!1})}var i=[],o=[],a=n||function(e,t){return e===t};return r(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.deepCompare=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70);t.SimpleUri=r.SPResourcePath,t.UriFormat=r.SPResourcePathFormat,t.default=r.SPResourcePath},function(e,t,n){"use strict";function r(e,t){if(t>-1){var n=e.indexOf("/",t);return n>-1?e.slice(0,n):e}return""}Object.defineProperty(t,"__esModule",{value:!0});var i;!function(e){e[e.absolute=0]="absolute",e[e.relative=1]="relative",e[e.serverRelative=2]="serverRelative"}(i||(i={}));var o=function(){function e(e){void 0===e&&(e="");var t=e.indexOf("//"),n=e.indexOf("/"),o=t>-1&&t<=n?t+"//".length:-1,a=r(e,o),s=a&&a.slice(o),u=e.slice(a.length),c=a?i.absolute:"/"===u[0]?i.serverRelative:i.relative,l=u.split("/");this.authority=a,this.domain=s,this.format=c,this.path=u,this.segments=l,this.value=e}return e}();n.d(t,"SPResourcePath",function(){return o}),n.d(t,"SPResourcePathFormat",function(){return i})},function(e,t,n){"use strict";function r(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=void 0),function(i){try{if(i.enabled&&(i.eventType!==c.ClonedEventType.Start||n)&&(!r||!r.isQosEvent(i))){var o=l.buildAriaEvent(e,i);t.logEvent(o)}}catch(t){var a=void 0;t instanceof e.Exception&&(a=new Error("Aria error: "+t.toString())),t&&t.handled||d.log(a||t)}}}function i(e,t){e.LogManager.isInitialized()||(e.LogManager.initialize(t.tenantToken,u.__assign({disableCookies:t.disableCookies},t.offlineCache?{browserOverrides:{onGetData:t.offlineCache.getData,onSaveData:t.offlineCache.saveData}}:{},t.ariaLogConfiguration||{})),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&window.addEventListener("beforeunload",function(){e.LogManager.flush()})),e.LogManager.addCallbackListener(function(e,n,r,i){r===t.tenantToken&&t.ariaQos&&t.ariaQos.reportQos({result:e,statusCode:n,events:i})})}function o(e,t,n){void 0===n&&(n={});var r=new e.Logger(t);return a(r,n),r}function a(e,t){var n=t.Session,r=t.Version,i=t.OSName,o=t.OSVersion,a=t.Market,s=t.UserId,c=t.Manifest,l=u.__rest(t,["Session","Version","OSName","OSVersion","Market","UserId","Manifest"]),d=e.getSemanticContext();n&&e.setContext("AppInfo.Session",n),c&&e.setContext("AppInfo.Manifest",c),r&&d.setAppVersion(r),d.setUserLanguage(a||""),s&&d.setUserId(s),i&&d.setDeviceOsName(i),o&&d.setDeviceOsVersion(o);for(var f in l)if(Object.prototype.hasOwnProperty.call(l,f)){var h=l[f];if(void 0===h||null===h)continue;var m=p.capitalize(f);e.setContext(m,l[f])}}function s(e){var t=void 0;return function(){return t||(t=e()),t}}Object.defineProperty(t,"__esModule",{value:!0});var u=n(0),c=n(4),l=n(72),d=n(7),p=n(21),f=function(){function e(e){var t=this;this.logEvent=function(e){t._createLogHandler().then(function(t){return t(e)})},this._getAria=s(function(){return e.ariaLoader().then(function(t){return i(t,e),t})}),this._getLogger=s(function(){return t._getAria().then(function(t){return[o(t,e.tenantToken,e.context),t]})}),this._createLogHandler=s(function(){return t._getLogger().then(function(t){var n=t[0];return r(t[1],n,e.logStartEvents,e.ariaQos)})})}return e.prototype.attach=function(e){this._createLogHandler();var t=this.logEvent;return e.addLogHandler(t).forEach(t),function(){return e.removeLogHandler(t)}},e.prototype.updateContext=function(e){this._getLogger().then(function(t){return a(t[0],e)})},e}();t.AriaTelemetryHandler=f},function(e,t,n){"use strict";function r(e){var t={CorrelationVector:e.vector.toString(),ValidationErrors:e.validationErrors,WebLog_FullName:e.eventName,WebLog_EventType:a.ClonedEventType[e.eventType]};e.eventType===a.ClonedEventType.End&&(t.Duration=e.endTime-e.startTime);for(var n=e.eventName.split(","),r=0,i=n;r<i.length;r++){var o=i[r];o&&(t["WebLog_Type_"+o]=1)}var u=e.data,c=e.context;if(c)for(var l in c)if(Object.prototype.hasOwnProperty.call(c,l)){var d=c[l];if(void 0===d||null===d)continue;var p=s.capitalize(l);t[p]=d}if(u)for(var f in u)if(Object.prototype.hasOwnProperty.call(u,f)){var d=u[f];if(void 0===d||null===d)continue;var h=e.metadata[f];if(h){var p=h.isPrefixingDisabled?s.capitalize(f):s.capitalize(h.definedInName)+"_"+f,m=h.type;if(4===m){for(var v in d)if(Object.prototype.hasOwnProperty.call(d,v)){var _=d[v];void 0!==_&&null!==_&&""!==_&&(t[p+"_"+v.replace(".","_")]=_)}}else t[p]=6===m?h.typeRef[d]:d}}return{name:e.isEventTypePrefixingDisabled?n[n.length-2]:"ev_"+n[n.length-2],values:t}}function i(e,t){var n=r(t),i=n.name,a=n.values,s=new e.EventProperties;return s.name=i,o(e,s,a),s}function o(e,t,n){var r;try{for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r=i,t.setProperty(i,n[i]))}catch(t){var o=void 0,a=void 0;throw t instanceof e.Exception&&(o=t.ErrorCode(),a=new Error("Aria error: "+t.toString())),a&&(t.handled=!0,u.logError(a,{errorCode:o,propertyKey:r})),t}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(4),s=n(21),u=n(7);t.getAriaEventInfo=r,t.buildAriaEvent=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),o=n(1),a=n(74),s=n(43),u=n(22),c=n(11),l=n(44);!function(e){function t(e,t,n,r){if(pe)throw new Error("The beacon has already been added to the logging manager with event name prefix "+ce+".");var i=!1;if(s.default.instance&&(e=s.default.eventNamePrefix,t=s.default.handlers,i=!0),!e||!t)throw new Error("You have to pass in eventNamePrefix and IBeaconHandlers object if no BeaconCache present.");pe=new he(e,t,i,n,r);for(var o=0;o<de;o++){var a=le.getValue(o.toString());a&&a.name&&a.props&&E(a.name,a.props)}}function n(e,t){pe&&pe.updateSettings(e,t)}function r(){return!!pe}function d(){pe&&(pe.dispose(),pe=void 0)}function p(){se||(Z=new G,ne=new Array(0),re=new Array(0),f(C,1),se=!0)}function f(e,t){if(!Boolean(ne[e])){var n=new X(e,t),r=ee;Z.wsaStreams[r]=n,ee++,te+=U,ne[e]=r}}function h(e,t){try{var n=new W(t);if(y())return;oe=!0,v(z,e);var r=Z.wsaStreams[ne[e]];if(Boolean(r)){if(!(ie<A))throw"Beacon: MAX_ROWS_IN_STREAM exceeded for stream ID "+String(e);r.Rows[ie++]=n,te+=m(n),v(K,ie)}}catch(e){o.default.log(e)}}function m(e){for(var t=j,n=0;n<e.Vals.length;n++){t+=2*String(e.Vals[n]).length}return t+=6*(e.Vals.length-1)}function v(e,t){if(!(e<1||e>V||t<0||t>F)){var n=null,r=re[e];if(Boolean(r)&&(n=Z.wsaDatapoints[r]),null==n){var i=new J(e,t),o=$;Z.wsaDatapoints[o]=i,re[e]=o,$++}else n.Val=t}}function _(){if(null==Z)return"";try{if(oe){Boolean(ae)?v(Q,q):(v(Q,B),ae=!0),Z.EndTime=T();var e=null;try{e=JSON.stringify(Z)}catch(e){o.default.log(e)}return g(),e}}catch(e){return o.default.log(e),""}}function g(){ne=new Array(0),re=new Array(0),$=0,ee=0,ie=0,te=0,$=0;var e=Z.CorrelationId;Z=new G,Z.CorrelationId=e,f(C,1),oe=!1}function y(){var e=$*L+te;return e>=k&&(pe.beacon(),(e=$*L+te)>=k)}function b(e){p(),Boolean(Z)&&(Z.CorrelationId=null!==e&&void 0!==e?e:ue)}function E(e,t){if(p(),Boolean(e)&&Boolean(t)){var n=new Array(R+1);n[I]=D,n[M]=e;var r=R;for(var i in t){var o=t[i];void 0!==o&&null!==o&&(o instanceof Date&&(o=o.getTime()),n[r++]=i,n[r++]=o)}h(C,n)}}function w(){return p(),_()}function S(){var e=new Date,t=e.getTime();return 0===Y&&(Y=t),1+t-Y&2147483647}function T(){var e=new Date,t=e.getTime();return t+=N,t*=1e4}var x=5e3,P=100,O=5e3,C=1234,D="V1",I=0,M=1,R=2,k=65536,A=1e3,j=4,L=12,U=12,N=116444736e5,F=4294967295,V=2147483647,B=0,q=1,H=16,z=8048,K=7993,Q=60,W=function(){function e(e){this.Tic=0,this.Vals=null;var t=this;t.Tic=S();var n=e.length;t.Vals=new Array(n);for(var r=0;r<n;r++)t.Vals[r]=e[r]}return e}(),J=function(){function e(e,t){var n=this;n.Id=e,n.Val=t,n.Tic=S()}return e}(),X=function(){function e(e,t){var n=this;n.Id=e,n.Width=t,n.Rows=new Array(0)}return e}(),G=function(){function e(){this.StartTime=null,this.EndTime=null,this.Flags=0,this.wsaDatapoints=null,this.wsaStreams=null;var e=this;e.StartTime=T(),e.EndTime=null,e.CorrelationId=null,e.Flags=H,e.wsaDatapoints=new Array(0),e.wsaStreams=new Array(0)}return e}(),Y=0,Z=null,$=0,ee=0,te=0,ne=null,re=null,ie=0,oe=!1,ae=!1,se=!1,ue="00000000-0000-0000-0000-000000000000",ce="",le=null,de=null,pe=null,fe=null,he=function(e){function t(t,n,r,i,o){void 0===o&&(o=x);var s=e.call(this,"/_layouts/15/WsaUpload.ashx",P,[o],!0,O,a.default.DEFAULT_TOTAL_RETRIES,a.default.DEFAULT_RESET_TOTAL_RETRIES_AFTER,r)||this;return ce=t,fe=n,le=new u.default(l.default.STORE_KEY,c.default.session),de=le.getValue(l.default.STORE_SIZE_KEY),de||(de=0),i&&(s._cid=i),s}return i.__extends(t,e),t.prototype.beacon=function(){if("localhost"!==location.hostname){var e=w();if(null!=e&&e.length>0){var t={};t["Content-Type"]="application/json",this.sendBeacon(e,t,1e4)}}else if(sessionStorage.getItem("enableBeaconLogToConsole"))try{console.log('Beacon: Uploaded to COSMOS (To disable logging to the console for this session, run \'sessionStorage.setItem("enableBeaconLogToConsole", "")\' in the debug window)')}catch(e){}de=0,le.setValue(l.default.STORE_SIZE_KEY,de)},t.prototype.updateSettings=function(e,t){e&&e!==ce&&(this.flush(),setTimeout(function(){ce=e,t&&(fe=t)},0)),t&&(fe=t)},t.prototype.dispose=function(){this.flush();for(var e=0,t=Object.keys(this);e<t.length;e++){delete this[t[e]]}},t.prototype._createBeaconRequest=function(e){b(this._correlationId);for(var t=0;t<e.length;t++){var n=e[t];l.default.processAndLogEvent({event:n,logFunc:function(e,t){E(e,t)},eventNamePrefix:ce,handlers:fe})}this.beacon()},t.prototype._onNewEvent=function(e){},Object.defineProperty(t.prototype,"_correlationId",{get:function(){if(this._cid)return this._cid;var e=window._spPageContextInfo;return e?e.CorrelationId:ue},enumerable:!0,configurable:!0}),t}(a.default);e.addToLoggingManager=t,e.updateSettings=n,e.isBeaconAdded=r,e.dispose=d}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(20),i=n(75),o=n(39),a=n(9),s=function(){function e(t,n,r,o,a,s,u,c){var l=this;this._lastSendBeacon=0,this._endPointUrl=t,this._maxCriticalFlushInterval=a,this._totalRetries=void 0===s?e.DEFAULT_TOTAL_RETRIES:s,this._totalRetriesStartValue=this._totalRetries,this._resetTotalRetriesAfter=void 0===u?e.DEFAULT_RESET_TOTAL_RETRIES_AFTER:u,this._ignorePreviousEvents=void 0!==c&&c,this._eventBatchCache=new i.default(n,r,function(e){l._onNewEvent&&l._onNewEvent(e)},function(e){l._createBeaconRequest(e)},o),this.init()}return e.prototype.sendBeacon=function(e,t,n){this._sendBeacon(e,t,n,0)},e.prototype.flush=function(){this._eventBatchCache&&this._eventBatchCache.flush()},e.prototype._sendBeacon=function(e,t,n,i){var s=this;0===i&&(this._lastSendBeacon=r.Manager.getTime());var u=new o.default({url:this._endPointUrl,json:e,headers:t,requestTimeoutInMS:n}),c=new a.Beacon({retryCount:i,totalRetries:this._totalRetries});u.start(function(e,t){c.end({status:t+"",success:!0}),++s._successfulLogRequests>=s._resetTotalRetriesAfter&&(s._successfulLogRequests=s._resetTotalRetriesAfter,s._totalRetries=s._totalRetriesStartValue)},function(r,o,a){s._successfulLogRequests=0,c.end({status:o+"",success:!1}),-2===o&&s._totalRetries>0&&(s._totalRetries--,s._sendBeacon(e,t,n,i+1))})},e.prototype.init=function(){var e=this,t=r.Manager.addLogHandler(function(t){e.addEvent(t)});if(!this._ignorePreviousEvents)for(var n=0;n<t.length;n++)this.addEvent(t[n])},e.prototype.addEvent=function(e){e.enabled&&(this._eventBatchCache.addEvent(e),e.critical&&(!this._lastSendBeacon||r.Manager.getTime()-this._lastSendBeacon>this._maxCriticalFlushInterval)&&this._eventBatchCache.flush())},e.DEFAULT_TOTAL_RETRIES=3,e.DEFAULT_RESET_TOTAL_RETRIES_AFTER=3,e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(9),i=n(1),o=function(){function e(e,t,n,r,i){this._events=[],this._flushCount=0,this._maxSize=e,this._newEventHandler=n,this._flushHandler=r,this._maxFlushTimes=t,this._useSlidingWindow=i}return e.prototype.addEvent=function(e){if(this._events.push(e),this._newEventHandler)try{this._newEventHandler(e)}catch(e){i.default.log(e)}r.Beacon.isTypeOf(e)||(this._events.length>=this._maxSize?this.flush():this._setFlushTimeout(!1))},e.prototype.flush=function(){this._setFlushTimeout(!0)},e.prototype._handleFlush=function(){this._clearFlushTimeout(),this._events.length&&(this._flushHandler(this._events),this._events=[])},e.prototype._clearFlushTimeout=function(){this._flushTimeoutId&&(window.clearTimeout(this._flushTimeoutId),this._flushTimeoutId=null),this._immediateflushTimeoutId&&(window.clearTimeout(this._immediateflushTimeoutId),this._immediateflushTimeoutId=null)},e.prototype._setFlushTimeout=function(e){var t=this;this._immediateflushTimeoutId||(this._useSlidingWindow?(this._clearFlushTimeout(),e?this._immediateflushTimeoutId=window.setTimeout(function(){t._handleFlush()},0):this._flushTimeoutId=window.setTimeout(function(){t._handleFlush()},this._getFlushTime())):e?this._immediateflushTimeoutId||(this._immediateflushTimeoutId=window.setTimeout(function(){t._handleFlush()},0)):this._flushTimeoutId||(this._flushTimeoutId=window.setTimeout(function(){t._handleFlush()},this._getFlushTime())))},e.prototype._getFlushTime=function(){if(this._flushCount<this._maxFlushTimes.length){var e=this._flushCount;return this._flushCount++,this._maxFlushTimes[e]}return this._maxFlushTimes[this._maxFlushTimes.length-1]},e}();t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.PLT=r.createSingleEvent({eventName:"PLT,",shortEventName:"PLT",samplingFeature:{ODB:!0,ODC:"PLTLoggingSampling",Fallback:!1}},{name:{isKey:!0,type:1},w3cResponseEnd:2,prefetchStart:2,deferredListDataRender:2,appStart:2,preRender:2,dataFetch:2,dataFetchServerTime:2,postRender:2,render:2,plt:2,pltWithUnload:2,httpRequests:2,appCacheHit:3,dns:2,tcpConnect:2,sslConnect:2}),t.default=t.PLT},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.UnhandledError=r.createSingleEvent({eventName:"UnhandledError,",shortEventName:"UnhandledError",critical:!0,requiresParent:!1},{message:1,stack:1,builtStack:1,line:2,col:2,url:1}),t.default=t.UnhandledError},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.RequireJSError=r.createSingleEvent({eventName:"RequireJSError,",shortEventName:"RequireJSError",critical:!0,requiresParent:!1},{message:1,requireModules:5,requireType:1,stack:1}),t.default=t.RequireJSError},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(8),t);var r=n(8);t.default=r.CaughtError},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(15),t);var r=n(15);t.default=r.QosError},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(0).__exportStar(n(16),t);var r=n(16);t.default=r.Verbose},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.PageInit=r.createSingleEvent({eventName:"PageInit,",shortEventName:"PageInit",requiresParent:!1},{screenWidth:2,screenHeight:2,availableScreenWidth:2,availableScreenHeight:2,renderWidth:2,renderHeight:2,browserWidth:2,browserHeight:2,devicePixelRatio:2,referrer:1}),t.default=t.PageInit},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e[e.Low=0]="Low",e[e.Normal=1]="Normal"}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18);t.default=r.ControlPerformanceData},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(27);t.default=r.CorrelationVector},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(45);t.StringHelper=r;var i=n(87);t.SPAlternativeUrls=i;var o=n(88);t.ABExperiment=o.ABExperiment,t.ABExpHash=o.ABExpHash,t.TargetType=o.TargetType;var a=n(23);t.Killswitch=a.Killswitch,t.getKillSwitch=a.getKillSwitch;var s=n(24);t.isSPFeatureEnabled=s.isSPFeatureEnabled;var u=n(92);t.Component=u.default;var c=n(95);t.EventGroup=c.default;var l=n(51);t.Features=l.default;var d=n(50);t.FeatureOverrides=d.default;var p=n(96);t.HtmlEncoding=p.default;var f=n(46);t.Locale=f.default;var h=n(19);t.PlatformDetection=h.default;var m=n(10);t.Promise=m.default;var v=n(97);t.SiteHeaderLogoAcronym=v.default;var _=n(47);t.Uri=_.default;var g=n(41);t.UriEncoding=g.default;var y=n(56);t.ItemType=y.default;var b=n(98);t.FileTypeIconMap=b.default;var E=n(99);t.SharingType=E.default;var w=n(54);t.Signal=w.default;var S=n(25);t.Scope=S.default;var T=n(38);t.AriaLoggerCore=T.default},function(e,t,n){"use strict";function r(e){try{var t=m&&m[e];if(!t)return;var n=new s.default(t),r=n.getQueryParameter(c);if(r){var i=r.split(l),o=void 0;if(2===i.length&&(o=Number(i[0])),!o){var a=new u.Qos({name:v});return a.end({resultType:u.ResultTypeEnum.Failure,resultCode:"EatParamUnexpectedFormat",extraData:{eatParam:r}}),t}if(o-=30,Date.now()/1e3>o)return void delete m[e]}return t}catch(e){var a=new u.Qos({name:v});a.end({resultType:u.ResultTypeEnum.Failure,resultCode:"Unexpected",extraData:{error:e}})}}function i(e){if(e)for(var t in e)m[t]=e[t]}function o(){return m}function a(e,t){var n,i=r(d)||p;switch(t){case 2:n="M";break;case 3:n="L";break;default:n="S"}var o=new s.default(i);return o.setQueryParameter(f,n),o.setQueryParameter(h,e||""),o.toString()}Object.defineProperty(t,"__esModule",{value:!0});var s=n(47),u=n(14);!function(e){e[e.Small=1]="Small",e[e.Medium=2]="Medium",e[e.Large=3]="Large"}(t.UserPhotoSize||(t.UserPhotoSize={}));var c="_eat_",l="_",d="UserPhotoAspx",p="/_layouts/15/userphoto.aspx",f="size",h="accountname",m={},v="TryGetAlternativeUrlFailure";t.tryGetAlternativeUrl=r,t.updateMap=i,t.getUrlTable=o,t.getUserPhotoUrl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(0),o=n(13),a=n(89),s=n(48),u=n(23),c=n(49),l=n(1),d=n(50),p=n(91);!function(e){e[e.user=1]="user",e[e.tenant=2]="tenant",e[e.farm=3]="farm",e[e.site=4]="site"}(r=t.TargetType||(t.TargetType={}));var f;!function(e){e[e.v1=1]="v1",e[e.v2=2]="v2"}(f=t.ABExpHash||(t.ABExpHash={})),t.EXPERIMENTS_WITH_V1_HASHING=["ChangeFlowToAutomate2","DocLibServiceWorkerExperimentV2","FileHoverCardAssign","flowOdbCommandBarCoachmarkExperiment","flowOdbCommandBarCoachmarkExperiment2","flowRemindMeCoachmarkExperiment","flowRemindMeCoachmarkExperiment2","flowRequestSignOffCoachmarkExperiment2","FluentLightBoxExperiment","NewCreateSiteEntryPointExperiment"];var h=function(){function e(n,a){var s=n.name,p=a&&!d.default.isFeatureEnabled(a);u.Killswitch.isActivated("ecfe2fe1-07c6-4117-98d8-27582d0384f7","10/25/2018")||this._isValidName(n.name)||l.default.log("Experiment name '"+n.name+"' is invalid.");var h=t.EXPERIMENTS_WITH_V1_HASHING.indexOf(n.name)>-1?f.v1:f.v2;if(this._experimentData=n=i.__assign({segmentPopulation:.5,targetType:r.user,version:h},n),p&&(n.name+="AA"),this._isOn=!1,e._pageContext)switch(this._experimentData.targetType){case r.user:this._isOn=this._isUserExperimentOn();break;case r.tenant:this._isOn=this._isTenantExperimentOn();break;case r.farm:this._isOn=this._isFarmExperimentOn();break;case r.site:this._isOn=this._isSiteExperimentOn()}else o.Engagement.logData({name:this._experimentData.name+".Experiment.HostSettingsMissing"});p&&(this._isOn=!1);var m=c.deserializeQuery((window.location.search||"").substr(1)),v=(m.enableExp||"").split(","),_=(m.disableExp||"").split(",");-1!==v.indexOf(s)?this._isOn=!0:-1!==_.indexOf(s)&&(this._isOn=!1)}return e.init=function(t){e._pageContext=i.__assign({},t,{userLoginName:t.userLoginName||"missing_user",siteSubscriptionId:t.siteSubscriptionId||"missing_tenant",farmLabel:t.farmLabel||"missing_farm",siteId:t.siteId||"missing_site"})},e.Init=function(t){e.init(t)},e.prototype.getExperimentData=function(){return this._experimentData},e.prototype.isOn=function(){return this._isOn},e.prototype.IsExperimentOn=function(){return this._isOn},e.prototype._isUserExperimentOn=function(){var t=e._pageContext;if(!t)return!1;var n="",r=this._experimentData,i=r.name,o=r.version;return o===f.v1?n=i+"_"+t.userLoginName+"_"+t.siteSubscriptionId+"_"+t.farmLabel:o===f.v2&&(n=i+t.userLoginName),this._isExperimentOn(n)},e.prototype._isTenantExperimentOn=function(){var t=e._pageContext;if(!t)return!1;var n="",r=this._experimentData,i=r.name,o=r.version;return o===f.v1?n=i+"_"+t.siteSubscriptionId+"_"+t.farmLabel:o===f.v2&&(n=i+t.siteSubscriptionId),this._isExperimentOn(n)},e.prototype._isFarmExperimentOn=function(){var t=e._pageContext;if(!t)return!1;var n="",r=this._experimentData,i=r.name,o=r.version;return o===f.v1?n=i+"_"+this._getSiteId()+"_"+t.siteSubscriptionId+"_"+t.farmLabel:o===f.v2&&(n=i+this._getSiteId()),this._isExperimentOn(n)},e.prototype._isSiteExperimentOn=function(){var t=e._pageContext;if(!t)return!1;var n=this._experimentData.name+"_"+this._getSiteId()+"_"+t.siteSubscriptionId+"_"+t.farmLabel;return this._isExperimentOn(n)},e.prototype._isValidName=function(e){return!/[^A-Za-z0-9]/.test(e)},e.prototype._getSiteId=function(){var t=e._pageContext;return this._experimentData.siteId?this._experimentData.siteId:t.siteId},e.prototype._isExperimentOn=function(e){if(!e)return!1;var t=0;this._experimentData.version===f.v1?t=this._getHashNumber(e):this._experimentData.version===f.v2&&(t=this._getHashNumberMurmur(e));var n=t<=this._experimentData.segmentPopulation;return this._logData(n),n},e.prototype._getHashNumber=function(e){if(0===e.length)return 1;for(var t=5381,n=0;n<e.length;++n)t=(t<<5)+t+e.charCodeAt(n),t&=t;return(t&=65535)/65535},e.prototype._getHashNumberMurmur=function(e){return p.v3(e,1)/4294967295},e.prototype._getExperimentType=function(){return this._experimentData.targetType===r.user?s.ExperimentTypeEnum.User:this._experimentData.targetType===r.site?s.ExperimentTypeEnum.Site:s.ExperimentTypeEnum.Unknown},e.prototype._logData=function(e){a.Experiment.logData({name:"",isInRamp:e,experiment:this._experimentData.name,variant:e.toString(),assignmentType:this._getExperimentType(),assignmentId:this._experimentData.targetType===r.site?this._getSiteId():""})},e}();t.ABExperiment=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),i=n(48);t.Experiment=r.createSingleEvent({eventName:"Experiment,",shortEventName:"Experiment"},{name:{isPrefixingDisabled:!0,type:1},isInRamp:{isPrefixingDisabled:!0,type:3},experiment:{isPrefixingDisabled:!0,type:1},variant:{isPrefixingDisabled:!0,type:1},assignmentType:{isPrefixingDisabled:!0,type:6,typeRef:i.ExperimentTypeEnum},assignmentId:{isPrefixingDisabled:!0,type:1}}),t.default=t.Experiment},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),i=r;t.default=i},function(e,t,n){!function(){function t(e,t){for(var n,r=e.length,i=t^r,o=0;r>=4;)n=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24,n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16),n^=n>>>24,n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^n,r-=4,++o;switch(r){case 3:i^=(255&e.charCodeAt(o+2))<<16;case 2:i^=(255&e.charCodeAt(o+1))<<8;case 1:i^=255&e.charCodeAt(o),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)}return i^=i>>>13,i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}function n(e,t){var n,r,i,o,a,s,u,c;for(n=3&e.length,r=e.length-n,i=t,a=3432918353,s=461845907,c=0;c<r;)u=255&e.charCodeAt(c)|(255&e.charCodeAt(++c))<<8|(255&e.charCodeAt(++c))<<16|(255&e.charCodeAt(++c))<<24,++c,u=(65535&u)*a+(((u>>>16)*a&65535)<<16)&4294967295,u=u<<15|u>>>17,u=(65535&u)*s+(((u>>>16)*s&65535)<<16)&4294967295,i^=u,i=i<<13|i>>>19,o=5*(65535&i)+((5*(i>>>16)&65535)<<16)&4294967295,i=27492+(65535&o)+((58964+(o>>>16)&65535)<<16);switch(u=0,n){case 3:u^=(255&e.charCodeAt(c+2))<<16;case 2:u^=(255&e.charCodeAt(c+1))<<8;case 1:u^=255&e.charCodeAt(c),u=(65535&u)*a+(((u>>>16)*a&65535)<<16)&4294967295,u=u<<15|u>>>17,u=(65535&u)*s+(((u>>>16)*s&65535)<<16)&4294967295,i^=u}return i^=e.length,i^=i>>>16,i=2246822507*(65535&i)+((2246822507*(i>>>16)&65535)<<16)&4294967295,i^=i>>>13,i=3266489909*(65535&i)+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}var r=n;r.v2=t,r.v3=n;e.exports=r}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(25),i=n(94),o=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={});var n=this.resources,o=void 0===n?t.resources?new i.ResourceScope(t.resources):e.resources:n;this.resources=o,this._Component_scope=new r.default}return Object.defineProperty(e.prototype,"scope",{get:function(){return this._Component_scope},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.scope.isDisposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._Component_scope.dispose()},e.prototype.managed=function(e){return this.resources&&(e=this.resources.injected(e)),this.scope.attached(e)},e.prototype.child=function(e){var t;return t=e instanceof i.ResourceKey?this.resources.consume(e):this.resources?this.resources.injected(e,{injectChildResourceScope:!0}):e,this.scope.attached(t)},e.dependencies={resources:i.resourceScopeKey},e}();t.Component=o,t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(52),i=function(){function e(){this._disposables={},this._lastDisposableId=0,this.isDisposed=!1}return e.prototype.attach=function(e){var t=this,n=""+ ++this._lastDisposableId,i=r.hook(e,function(){delete t._disposables[n]});return this._disposables[n]=i,i},e.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0);for(var e=this._disposables,t=0,n=Object.keys(e);t<n.length;t++){var i=n[t],o=e[i];o&&r.isDisposable(o)&&o.dispose(),delete e[i]}},e}();t.Scope=i},function(e,t,n){"use strict";function r(e,t,n){return i(e("module").id,t,n)}function i(e,t,n){return new u.ResourceKey({name:e,factory:new d(t,n)})}function o(e,t,n){return a(e("module").id,t,n)}function a(e,t,n){return new u.ResourceKey({name:e,factory:new p(t,n)})}Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),u=n(53),c=n(55),l=function(){function e(e,t){this._load=e,this._dependencies=t}return e.prototype.load=function(){var e=this,t=this._load().then(function(t){return new d(t,e._dependencies)});return this.load=function(){return t},t},e}();t.ResolvedResourceLoader=l;var d=function(){function e(e,t){this._type=e,this.dependencies=s.__assign({},e.dependencies||{},t||{})}return e.prototype.create=function(e){var t=new this._type({},e);return{instance:t,disposable:t}},e}();t.ResolvedResourceFactory=d;var p=function(){function e(e,t){this._type=e,this.dependencies=s.__assign({},e.dependencies||{},t||{})}return e.prototype.create=function(e){return{instance:u.getResolvedConstructor(this._type,e)}},e}();t.ResolvedResourceTypeFactory=p;var f=function(){function e(e){this._type=e,this.dependencies={}}return e.prototype.create=function(){var e=new this._type;return{instance:e,disposable:c.isDisposable(e)&&e}},e}();t.SimpleResourceFactory=f;var h=function(){function e(e){this._load=e}return e.prototype.load=function(){var e=this._load().then(function(e){return new m(e)});return this.load=function(){return e},e},e}();t.AliasResourceLoader=h;var m=function(){function e(e){this.dependencies={value:e.lazy}}return e.prototype.create=function(e){return{instance:e.value()}},e}();t.AliasResourceFactory=m,u.default.prototype.alias=function(e,t){return this.exposeFactory(e,new m(t))},t.createDefaultResourceKey=r,t.createResolvedResourceKey=i,t.createDefaultTypeResourceKey=o,t.createResolvedTypeResourceKey=a,s.__exportStar(n(53),t)},function(e,t,n){"use strict";function r(e){i.default.log(e)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),o=n(42),a=function(){function e(t,n){void 0===n&&(n=r),this._id=e._uniqueId++,this._parent=t,this._onError=n,this._eventRecords=[]}return e.raise=function(e,t,n,r){return o.raise(e,t,n,r)},e.isObserved=function(e,t){var n=e&&e.__events__;return!!n&&!!n[t]},e.isDeclared=function(e,t){var n=e&&e.__declaredEvents;return!!n&&!!n[t]},e.stopPropagation=function(e){e.stopPropagation&&e.stopPropagation()},e.prototype.dispose=function(){this._isDisposed||(this._isDisposed=!0,this.off(),this._parent=null)},e.prototype.onAll=function(e,t,n){for(var r in t)this.on(e,r,t[r],n)},e.prototype.on=function(t,n,r,i){var a=this;if(n.indexOf(",")>-1)for(var s=n.split(/[ ,]+/),u=0;u<s.length;u++)this.on(t,s[u],r,i);else{var c=this._parent,l={target:t,eventName:n,parent:c,callback:r,objectCallback:null,elementCallback:null,useCapture:i},d=t.__events__=t.__events__||{};if(d[n]=d[n]||{count:0},d[n][this._id]=d[n][this._id]||[],d[n][this._id].push(l),d[n].count++,o.isDOMEventTarget(t)){var p=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(!a._isDisposed){try{var i=r.apply(c,t);if(!1===i&&t[0]&&t[0].preventDefault){var o=t[0];o.preventDefault(),e.stopPropagation(o)}}catch(o){a._onError(o)}return i}};l.elementCallback=p,t.addEventListener(n,p,i)}else{var f=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!a._isDisposed)return r.apply(c,e)};l.objectCallback=f}this._eventRecords.push(l)}},e.prototype.off=function(e,t,n,r){for(var i=0;i<this._eventRecords.length;i++){var o=this._eventRecords[i];if(!(e&&e!==o.target||t&&t!==o.eventName||n&&n!==o.callback||"boolean"==typeof r&&r!==o.useCapture)){var a=o.target.__events__,s=a[o.eventName],u=s?s[this._id]:null;u&&(1!==u.length&&n?(s.count--,u.splice(u.indexOf(o),1)):(s.count-=u.length,delete a[o.eventName][this._id]),s.count||delete a[o.eventName]),o.elementCallback&&o.target.removeEventListener&&o.target.removeEventListener(o.eventName,o.elementCallback,o.useCapture),this._eventRecords.splice(i--,1)}}},e.prototype.raise=function(t,n,r){return e.raise(this._parent,t,n,r)},e.prototype.declare=function(e){var t=this._parent.__declaredEvents=this._parent.__declaredEvents||{};if("string"==typeof e)t[e]=!0;else for(var n=0;n<e.length;n++)t[e[n]]=!0},e._uniqueId=0,e}();t.EventGroup=a,t.default=a},function(e,t,n){"use strict";function r(e){return o[e]}Object.defineProperty(t,"__esModule",{value:!0});var i=/[<>&'"\\]/g,o={"<":"&lt;",">":"&gt;","&":"&amp;",'"':"&quot;","'":"&#39;","\\":"&#92;"},a=function(){function e(){}return e.encodeText=function(e){return e?e.replace(i,r):""},e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this._pageContext=e}return e.prototype.getAcronymRESTUrl=function(e){return this._pageContext.webServerRelativeUrl+"/_api/sphome/GetAcronymsAndColors?labels=[{Text:"+encodeURIComponent('"'+e+'"')+"}]"},e.prototype.getAcronymColor=function(e){var t={acronym:void 0,color:void 0};try{var n=JSON.parse(e),r=n.d.GetAcronymsAndColors.results[0];t.acronym=r.Acronym,t.color=r.Color}catch(n){var i=this._parseFn(),o=void 0,a=i(e);if(o=a.getElementsByTagName("element"))for(var s=o[0],u=0;u<s.childNodes.length;u++)switch(s.childNodes[u].nodeName){case"Acronym":t.acronym=s.childNodes[u].nodeValue;break;case"Color":t.color=s.childNodes[u].nodeValue}}return t},e.prototype._parseFn=function(){var e;if(DOMParser)e=function(e){return(new DOMParser).parseFromString(e,"text/xml")};else{if(!ActiveXObject||!new ActiveXObject("Microsoft.XMLDOM"))throw new Error("No XML parser found");e=function(e){var t=new ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(e),t}}return e},e}();t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(56),i={accdb:{extensions:["accdb","mdb"]},archive:{type:r.default.Unknown,extensions:["7z","ace","arc","arj","dmg","gz","iso","lzh","pkg","rar","sit","tgz","tar","z"]},audio:{type:r.default.Unknown,extensions:["aif","aiff","aac","amr","au","awb","dct","dss","dvf","flac","gsm","m4a","m4p","mid","mmf","mp3","ogg","oga","ra","rm","wav","wma","wv"]},code:{extensions:["abap","ada","adp","ahk","as","as3","asc","ascx","asm","asp","awk","bash","bash_login","bash_logout","bash_profile","bashrc","bat","bib","bsh","build","builder","c","c++","capfile","cc","cfc","cfm","cfml","cl","clj","cls","cmake","cmd","coffee","config","cpp","cpt","cpy","cs","cshtml","cson","csproj","css","ctp","cxx","d","ddl","di","disco","dml","dtd","dtml","el","emakefile","erb","erl","f","f90","f95","fs","fsi","fsscript","fsx","gemfile","gemspec","gitconfig","go","groovy","gvy","Hcp","h","h++","haml","handlebars","hbs","hh","hpp","hrl","hs","htc","hxx","idl","iim","inc","inf","ini","inl","ipp","irbrc","jade","jav","java","js","json","jsp","jsx","l","less","lhs","lisp","log","lst","ltx","lua","m","mak","make","manifest","master","md","markdn","markdown","mdown","mkdn","ml","mli","mll","mly","mm","mud","nfo","opml","osascript","p","pas","patch","php","php2","php3","php4","php5","phtml","pl","pm","pod","pp","profile","ps1","pss","pt","py","pyw","r","rake","rb","rbx","rc","rdf","re","reg","rest","resw","resx","rhtml","rjs","rprofile","rpy","rss","rst","ruby","rxml","s","sass","scala","scm","sconscript","sconstruct","script","scss","sgml","sh","sh","shtml","sml","svn-base","sql","sql","sty","tcl","tex","textile","tld","tli","tmpl","tpl","vb","vi","vim","vmg","webpart","wsp","wsdl","xhtml","xoml","xsd","xslt","yaml","yaws","yml","zsh"]},css:{},csv:{extensions:["csv"]},docset:{type:r.default.Folder,iconType:"svg"},docx:{extensions:["doc","docm","docx","docb"]},dotx:{extensions:["dot","dotm","dotx"]},email:{type:r.default.Unknown,extensions:["eml","msg","ost","pst"]},exe:{type:r.default.Unknown,extensions:["application","appref-ms","apk","app","appx","exe","ipa","msi","xap"]},folder:{type:r.default.Folder,iconType:"svg"},font:{type:r.default.Unknown,extensions:["ttf","otf","woff"]},genericfile:{type:r.default.Unknown},html:{extensions:["htm","html","mht"]},link:{type:r.default.Unknown,extensions:["lnk","link","url","website","webloc"]},splist:{type:r.default.Unknown,extensions:["listitem"]},model:{extensions:["3ds","3mf","blend","cool","dae","df","dwfx","dwg","dxf","fbx","glb","gltf","holo","layout","max","off","ply","skp","stp","stl","t","thl","x"]},mpp:{extensions:["mpp"]},mpt:{extensions:["mpt"]},one:{type:r.default.OneNote,extensions:["one"]},onetoc:{type:r.default.OneNote,extensions:["ms-one-stub","onetoc","onetoc2","onepkg"]},pdf:{extensions:["pdf"]},photo:{type:r.default.Media,extensions:["arw","bmp","cr2","crw","dcr","dds","dib","dng","erf","gif","heic","heif","ico","jfi","jfif","jif","jpe","jpeg","jpg","kdc","mrw","nef","orf","pct","pict","png","pns","psd","raw","tga","tif","tiff","wdp"]},photo360:{},potx:{extensions:["pot","potm","potx"]},ppsx:{extensions:["pps","ppsm","ppsx"]},pptx:{extensions:["ppt","pptm","pptx","sldx","sldm"]},presentation:{extensions:["odp","gslides","key"]},pub:{extensions:["pub"]},spo:{extensions:["aspx"]},sponews:{},rtf:{extensions:["epub","gdoc","odt","rtf","wri","pages"]},sharedfolder:{type:r.default.Folder,iconType:"svg"},spreadsheet:{extensions:["ods","gsheet","numbers"]},sysfile:{type:r.default.Unknown,extensions:["bak","bin","cab","cache","cat","cer","class","dat","db","dbg","dl_","dll","ithmb","jar","kb","kdc","ldt","lrprev","ppa","ppam","pdb","rom","thm","thmx","vsl","xla","xlam","xll"]},txt:{extensions:["dif","diff","readme","out","plist","properties","text","txt"]},vector:{type:r.default.Unknown,extensions:["ai","dgn","gdraw","pd","emf","eps","fig","indd","indt","ps","svg","svgz","wmf","oxps","xps","xd","sketch"]},video:{type:r.default.Media,extensions:["3g2","3gp","3gp2","3gpp","asf","avi","dvr-ms","flv","m1v","m4v","mkv","mod","mov","mm4p","mp2","mp2v","mp4"," mpa","mpe","mpeg","mpg","mpv","mpv2","mts","ogg","qt","swf","ts","vob","webm","wlmp","wm","wmv","wmx"]},video360:{},vsdx:{extensions:["vsd","vsdm","vsdx","vdw"]},vssx:{extensions:["vss","vssm","vssx"]},vstx:{extensions:["vst","vstm","vstx"]},xlsx:{extensions:["xls","xlsb","xlsm","xlsx"]},xltx:{extensions:["xlt","xltm","xltx"]},xml:{extensions:["xaml","xml","xsl"]},xsn:{extensions:["xsn"]},zip:{type:r.default.Unknown,extensions:["zip"]}};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e[e.Public=0]="Public",e[e.PublicUnlisted=2]="PublicUnlisted",e[e.Shared=3]="Shared",e[e.Private=4]="Private",e[e.Unknown=5]="Unknown"}(r||(r={})),t.default=r}])});


define("229b8d08-79f3-438b-8c21-4613fc877abd_0.1.2",[],(function(){return (function(e){function t(r){if(n[r])return n[r].exports;var l=n[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,t),l.l=!0,l.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)})([(function(e,t,n){"use strict";e.exports=n(1)}),(function(e,t,n){"use strict";(function(e){function n(e){var t=_();e();var n=_();T.perf.duration+=n-t}function r(e,t){void 0===t&&(t=!1),n((function(){var n=Array.isArray(e)?e:m(e);void 0===b&&(b=v());var r=T.runState,l=r.mode,o=r.buffer,a=r.flushTimer;t||1===l?(o.push(n),a||(T.runState.flushTimer=u())):i(n)}))}function l(e){T.loadStyles=e}function o(e){T.runState.mode=e}function a(){n((function(){var e=T.runState.buffer.slice();T.runState.buffer=[];var t=[].concat.apply([],e);t.length>0&&i(t)}))}function u(){return setTimeout((function(){T.runState.flushTimer=0,a()}),0)}function i(e,t){T.loadStyles?T.loadStyles(h(e).styleString,e):b?S(e,t):p(e)}function s(e){T.theme=e,d()}function c(e){void 0===e&&(e=3),3!==e&&2!==e||(f(T.registeredStyles),T.registeredStyles=[]),3!==e&&1!==e||(f(T.registeredThemableStyles),T.registeredThemableStyles=[])}function f(e){e.forEach((function(e){var t=e&&e.styleElement;t&&t.parentElement&&t.parentElement.removeChild(t)}))}function d(){if(T.theme){for(var e=[],t=0,n=T.registeredThemableStyles;t<n.length;t++){var r=n[t];e.push(r.themableStyle)}e.length>0&&(c(1),i([].concat.apply([],e)))}}function y(e){return e&&(e=h(m(e)).styleString),e}function h(e){var t=T.theme,n=!1;return{styleString:(e||[]).map((function(e){var r=e.theme;if(r){n=!0;var l=t?t[r]:void 0,o=e.defaultValue||"inherit";return t&&!l&&console,l||o}return e.rawString})).join(""),themable:n}}function m(e){var t=[];if(e){for(var n=0,r=void 0;r=x.exec(e);){var l=r.index;l>n&&t.push({rawString:e.substring(n,l)}),t.push({theme:r[1],defaultValue:r[2]}),n=x.lastIndex}t.push({rawString:e.substring(n)})}return t}function p(e){var t=document.getElementsByTagName("head")[0],n=document.createElement("style"),r=h(e),l=r.styleString,o=r.themable;n.type="text/css",n.appendChild(document.createTextNode(l)),T.perf.count++,t.appendChild(n);var a={styleElement:n,themableStyle:e};o?T.registeredThemableStyles.push(a):T.registeredStyles.push(a)}function S(e,t){var n=document.getElementsByTagName("head")[0],r=T.registeredStyles,l=T.lastStyleElement,o=l?l.styleSheet:void 0,a=o?o.cssText:"",u=r[r.length-1],i=h(e).styleString;(!l||a.length+i.length>E)&&(l=document.createElement("style"),l.type="text/css",t?(n.replaceChild(l,t.styleElement),t.styleElement=l):n.appendChild(l),t||(u={styleElement:l,themableStyle:e},r.push(u))),l.styleSheet.cssText+=y(i),Array.prototype.push.apply(u.themableStyle,e),T.lastStyleElement=l}function v(){var e=!1;if("undefined"!=typeof document){var t=document.createElement("style");t.type="text/css",e=!!t.styleSheet}return e}var g=this&&this.__assign||Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e};Object.defineProperty(t,"__esModule",{value:!0});var b,w="undefined"==typeof window?e:window,T=(function(){var e=w.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]};return e.runState||(e=g({},e,{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),e.registeredThemableStyles||(e=g({},e,{registeredThemableStyles:[]})),w.__themeState__=e,e})(),x=/[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g,E=1e4,_=function(){return"undefined"!=typeof performance&&performance.now?performance.now():Date.now()};t.loadStyles=r,t.configureLoadStyles=l,t.configureRunMode=o,t.flush=a,t.loadTheme=s,t.clearStyles=c,t.detokenize=y,t.splitStyles=m}).call(t,n(2))}),(function(e,t){var n;n=(function(){return this})();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n})])}));


define("f8a8ad94-4cf3-4a19-a76b-1cec9da00219_0.1.0", ["@ms/sp-telemetry","@microsoft/sp-loader","@microsoft/sp-lodash-subset","@microsoft/sp-core-library","@microsoft/sp-page-context","react","@microsoft/load-themed-styles","@microsoft/sp-diagnostics","@microsoft/sp-http","@microsoft/decorators","@ms/odsp-utilities-bundle"], function(__WEBPACK_EXTERNAL_MODULE__2q6Q__, __WEBPACK_EXTERNAL_MODULE_I6O9__, __WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_X_PM__, __WEBPACK_EXTERNAL_MODULE_cDcd__, __WEBPACK_EXTERNAL_MODULE_jOlS__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vlQI__, __WEBPACK_EXTERNAL_MODULE_wxtz__, __WEBPACK_EXTERNAL_MODULE_y88i__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-suite-nav": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"vendors~sp-suite-nav-search-common":"vendors~sp-suite-nav-search-common","sp-suite-nav-search-common":"sp-suite-nav-search-common"}[chunkId]||chunkId) + "_" + {"vendors~sp-suite-nav-search-common":"fc1eea2e443c3fa5ba67","sp-suite-nav-search-common":"74f495ccded451a6042f"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonpf8a8ad94_4cf3_4a19_a76b_1cec9da00219_0_1_0"] = window["webpackJsonpf8a8ad94_4cf3_4a19_a76b_1cec9da00219_0_1_0"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-suite-nav(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "019d":
/*!*********************************!*\
  !*** ./lib/O365ShellWrapper.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _FlexPaneWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FlexPaneWrapper */ "J5pV");
/* harmony import */ var _NavigationWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NavigationWrapper */ "s77q");
/* harmony import */ var _O365ShellSettingsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./O365ShellSettingsWrapper */ "0WS3");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Wrapper around the O365Shell global, preventing other files from needing to access the global
 */



var O365ShellWrapper = /** @class */ (function () {
    function O365ShellWrapper() {
        this._postRenderSignal = new Promise(function () {
            return;
        });
        this.FlexPane = new _FlexPaneWrapper__WEBPACK_IMPORTED_MODULE_0__["default"]();
        this.Navigation = new _NavigationWrapper__WEBPACK_IMPORTED_MODULE_1__["default"]();
    }
    Object.defineProperty(O365ShellWrapper.prototype, "Settings", {
        get: function () {
            if (!this._o365ShellSettings) {
                if (this.DoesShellExist() && O365Shell.Settings) {
                    this._o365ShellSettings = new _O365ShellSettingsWrapper__WEBPACK_IMPORTED_MODULE_2__["default"]();
                }
            }
            return this._o365ShellSettings;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(O365ShellWrapper.prototype, "Theme", {
        get: function () {
            if (this.DoesShellExist() && O365Shell.Theme) {
                return O365Shell.Theme;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(O365ShellWrapper.prototype, "Search", {
        get: function () {
            if (this.DoesShellExist() && O365Shell.Search) {
                return O365Shell.Search;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(O365ShellWrapper.prototype, "Extensibility", {
        get: function () {
            if (this.DoesShellExist() && O365Shell.Extensibility) {
                return O365Shell.Extensibility;
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Sets the data to be consumed by the O365Shell
     */
    O365ShellWrapper.prototype.SetData = function (shellData) {
        O365Shell.SetData(shellData);
    };
    /**
     * Instructs the 0365 shell to render
     */
    O365ShellWrapper.prototype.Render = function (renderSettings, postRendercallback) {
        O365Shell.Render(renderSettings, postRendercallback);
    };
    /**
     * Instructs the 0365 shell to render async
     */
    O365ShellWrapper.prototype.RenderAsync = function (renderSettings, renderCallback, postRenderCallback) {
        O365Shell.RenderAsync(renderSettings, renderCallback, postRenderCallback);
    };
    /**
     * Load shell plus (extra features like notifications). Only functions properly on SPO.
     */
    O365ShellWrapper.prototype.LoadShellPlus = function () {
        O365Shell.LoadShellPlus();
    };
    /**
     * Not provided by O365Shell. Tells whether the O365Shell global exists.
     */
    O365ShellWrapper.prototype.DoesShellExist = function () {
        return typeof O365Shell !== 'undefined';
    };
    /**
     * This is not provided by O365Shell. It invokes a given callback when a member/function
     * name is defined. This is useful when a component is trying to access a O365Shell
     * member but is not in charge of loading it.
     *
     * @params member name to be checked for avaliability
     * @parmas callback function to be called if the member is avaliable
     */
    O365ShellWrapper.prototype.OnHasMember = function (memberName, callback) {
        var _this = this;
        if (this._hasMember(memberName)) {
            callback();
        }
        else {
            /** Wait for the next render completition and call this method recursively to check if the member
             * is now available.
             */
            this._postRenderSignal.then(function () { return _this.OnHasMember(memberName, callback); });
        }
    };
    /**
     * Adds or updates a workload setting link
     *
     * @param settingLink link to add or update
     */
    O365ShellWrapper.prototype.AddOrUpdateWorkloadSettingLink = function (settingLink) {
        if (this.DoesShellExist() && this.Settings) {
            this.Settings.AddOrUpdateWorkloadSettingLink(settingLink);
        }
    };
    /**
     * Removes a workload setting link
     *
     * @param settingLinkID Id of link to be removed
     */
    O365ShellWrapper.prototype.RemoveWorkloadSettingLink = function (settingLinkID) {
        if (this.DoesShellExist() && this.Settings) {
            this.Settings.RemoveWorkloadSettingLink(settingLinkID);
        }
    };
    /**
     * Sets workload settings links
     *
     * @param settingsLinks array of links to be added
     */
    O365ShellWrapper.prototype.SetWorkloadSettingsLinks = function (settingsLinks) {
        if (this.DoesShellExist() && this.Settings) {
            this.Settings.SetWorkloadSettingsLinks(settingsLinks);
        }
    };
    /**
     * Gets the resource loader
     */
    O365ShellWrapper.prototype.GetResourceLoader = function () {
        return O365Shell.GetResourceLoader();
    };
    /**
    * This is not provided by O365Shell. It just checks if a given member/function name
    * is defined on the global shell object, as an alternative to if (O365Shell.Whatever) { ... }.
    */
    O365ShellWrapper.prototype._hasMember = function (memberName) {
        return this.DoesShellExist() && Boolean(O365Shell[memberName]);
    };
    return O365ShellWrapper;
}());
/* harmony default export */ __webpack_exports__["default"] = (O365ShellWrapper);


/***/ }),

/***/ "0Oc1":
/*!***********************************************!*\
  !*** ../sp-search-common/lib/getCleanPuid.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getCleanPuid; });
function getCleanPuid(puid) {
    return puid.lastIndexOf('|') > -1 && puid.indexOf('@') > -1
        ? puid.substring(puid.lastIndexOf('|') + 1, puid.indexOf('@'))
        : puid;
}


/***/ }),

/***/ "0WS3":
/*!*****************************************!*\
  !*** ./lib/O365ShellSettingsWrapper.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/** Wrapper around the O365Shell.Settings global, preventing other files from needing to access the global */
var O365ShellSettingsWrapper = /** @class */ (function () {
    function O365ShellSettingsWrapper() {
    }
    O365ShellSettingsWrapper.prototype.AddOrUpdateWorkloadSettingLink = function (settingLink) {
        try {
            if (O365Shell && O365Shell.Settings) {
                return O365Shell.Settings.AddOrUpdateWorkloadSettingLink(settingLink);
            }
        }
        catch (e) {
            // fail silently
        }
    };
    O365ShellSettingsWrapper.prototype.RemoveWorkloadSettingLink = function (settingLinkID) {
        try {
            if (O365Shell && O365Shell.Settings) {
                return O365Shell.Settings.RemoveWorkloadSettingLink(settingLinkID);
            }
        }
        catch (e) {
            // fail silently
        }
    };
    O365ShellSettingsWrapper.prototype.SetWorkloadSettingsLinks = function (settingLink) {
        try {
            if (O365Shell && O365Shell.Settings) {
                return O365Shell.Settings.SetWorkloadSettingsLinks(settingLink);
            }
        }
        catch (e) {
            // fail silently
        }
    };
    return O365ShellSettingsWrapper;
}());
/* harmony default export */ __webpack_exports__["default"] = (O365ShellSettingsWrapper);


/***/ }),

/***/ "2q6Q":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__2q6Q__;

/***/ }),

/***/ "5Oht":
/*!****************************************************!*\
  !*** ./lib/dataAccess/OnPremSuiteNavDataSource.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SuiteNavManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SuiteNavManager */ "FMHC");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__);



var OnPremSuiteNavDataSource = /** @class */ (function () {
    /**
     * Initializes a new instance of the SuiteNavManagerConfiguration
     * @TODO Task 161973 Add PageContext and set the
     * webPermissionMask/suiteNavData.UserDisplayName/webServerRelativeUrl/currentUICultureName
     */
    function OnPremSuiteNavDataSource(httpClient, currentUICultureName, webServerRelativeUrl) {
        this.suiteNavService = 1 /* OnPrem */;
        this._currentUICultureName = currentUICultureName;
        this._spHttpClient = httpClient;
        this._siteRelUrl = webServerRelativeUrl === '/' ? '' : webServerRelativeUrl;
    }
    // Downloads the OnPrem version of the SuiteNavData
    OnPremSuiteNavDataSource.prototype.loadData = function () {
        var _this = this;
        var url = this._siteRelUrl
            + '/_api/Microsoft.SharePoint.Portal.SuiteNavData.GetSuiteNavData?v=2&Locale='
            + this._currentUICultureName;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('OnPremSuiteNavDataSource');
        return this._spHttpClient.get(url, _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__["SPHttpClient"].configurations.v1)
            .then(function (response) {
            if (response.status !== 200) {
                _this._logAndThrowSuiteNavLoadingError(qosMonitor, response);
            }
            return response.json().then(function (jsonString) {
                if (jsonString.value === '') {
                    _this._logAndThrowSuiteNavLoadingError(qosMonitor, response);
                }
                else {
                    qosMonitor.writeSuccess();
                    var suiteNavResponse = JSON.parse(jsonString.value);
                    // If the height of the suiteNav is not provided, assume that it is 50px
                    if (suiteNavResponse.NavBarData && !suiteNavResponse.NavBarData.Dimensions) {
                        suiteNavResponse.NavBarData.Dimensions = { Top: _SuiteNavManager__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_SUITENAV_HEIGHT"] };
                    }
                    return suiteNavResponse; // tslint:disable-line:no-any
                }
            });
        });
    };
    OnPremSuiteNavDataSource.prototype._logAndThrowSuiteNavLoadingError = function (qosMonitor, response) {
        var errorMessage = 'Failed to retrieve Hybrid SuiteNavData';
        var error = new Error(errorMessage);
        qosMonitor.writeUnexpectedFailure('FailedToRetrieveOnPremSuiteNavData', error, {
            responseStatus: response ? response.status : '',
            correlationId: response ? response.correlationId : ''
        });
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(OnPremSuiteNavDataSource._logSource, errorMessage);
        throw error;
    };
    // @TODO Bug 169685 change to readonly
    OnPremSuiteNavDataSource._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('OnPremSuiteNavDataSource');
    return OnPremSuiteNavDataSource;
}());
/* harmony default export */ __webpack_exports__["default"] = (OnPremSuiteNavDataSource);


/***/ }),

/***/ "7fwW":
/*!***********************************************!*\
  !*** ./lib/search/manageSearchBoxSettings.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return manageSearchBoxSettings; });
/* harmony import */ var _msfast_search_prefetch_lib_createAsyncTokenProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @msfast/search-prefetch/lib/createAsyncTokenProvider */ "D8Rd");
/* harmony import */ var _ms_sp_search_common_lib_getSharePointEnvironment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/sp-search-common/lib/getSharePointEnvironment */ "cj/x");
/* harmony import */ var _createSearchInstrumenterOnce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createSearchInstrumenterOnce */ "A/Iv");
/* harmony import */ var _createSearchPrefetchStateOnce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createSearchPrefetchStateOnce */ "tFCy");
/* harmony import */ var _suiteSearchDispatcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./suiteSearchDispatcher */ "Cuz1");
/* harmony import */ var _asyncAppLevelUpdater__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./asyncAppLevelUpdater */ "oFNc");






function manageSearchBoxSettings(puid, asyncShell, asyncPageContext) {
    var instrumenter = Object(_createSearchInstrumenterOnce__WEBPACK_IMPORTED_MODULE_2__["default"])();
    var state = Object(_createSearchPrefetchStateOnce__WEBPACK_IMPORTED_MODULE_3__["default"])('@ms/sp-suite-nav', puid || '@ms/sp-suite-navFailedToProvidePuid');
    var asyncFeatures = fetchFeatures(asyncShell, asyncPageContext, instrumenter, state);
    var providerNames = ['BingForBusiness', 'Loki', 'SharePointSites', 'Substrate'];
    // The token providers are defer loaded to save bytes. The async token
    // providers below will hand over any token requests to the real token
    // providers when they are available.
    var asyncTokenProviders = providerNames.reduce(function (acc, name) { return (acc[name] = Object(_msfast_search_prefetch_lib_createAsyncTokenProvider__WEBPACK_IMPORTED_MODULE_0__["default"])(asyncFeatures.then(function (_a) {
        var tokenProviders = _a.tokenProviders;
        return tokenProviders[name];
    })),
        acc); }, {});
    return {
        searchBoxInstrumenter: instrumenter,
        searchBoxCache: state.cache,
        GetTokenRequestDictionary: function () { return asyncTokenProviders; }
    };
}
function fetchFeatures(asyncShell, asyncPageContext, instrumenter, state) {
    asyncPageContext.then(function (_a) {
        var legacyPageContext = _a.legacyPageContext;
        return instrumenter.setProps({
            hostAppId: 'SharePointShared',
            hostAppVersion: legacyPageContext.siteClientTag,
            hostAppEnvironment: legacyPageContext.env,
            spSiteSubscriptionId: legacyPageContext.siteSubscriptionId,
            spEnvironment: Object(_ms_sp_search_common_lib_getSharePointEnvironment__WEBPACK_IMPORTED_MODULE_1__["default"])(legacyPageContext.env, legacyPageContext.webAbsoluteUrl)
        });
    });
    return Promise
        .all([asyncShell, asyncPageContext])
        .then(function (_a) {
        var shell = _a[0], pageContext = _a[1];
        return Promise.all(/*! import() | sp-suite-nav-search-common */[__webpack_require__.e("vendors~sp-suite-nav-search-common"), __webpack_require__.e("sp-suite-nav-search-common")]).then(__webpack_require__.bind(null, /*! ./createConfiguredCommonSearchFeatures */ "gbBp")).then(function (features) { return (Object(_asyncAppLevelUpdater__WEBPACK_IMPORTED_MODULE_5__["resolveAppLevelUpdaterPromise"])(features.appLevelUpdater),
            features.default(shell, pageContext, instrumenter, state)); });
    });
}


/***/ }),

/***/ "A/Iv":
/*!****************************************************!*\
  !*** ./lib/search/createSearchInstrumenterOnce.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createSearchInstrumenterOnce; });
/* harmony import */ var _msfast_search_instrumentation_lib_createInstrumenter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @msfast/search-instrumentation/lib/createInstrumenter */ "PleR");
/* harmony import */ var _msfast_search_logger_lib_performance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @msfast/search-logger/lib/performance */ "S9p2");


var instrumenter;
/**
 * Creates the search instrumenter the first time it is called. Returns the
 * created instance on next invocations.
 *
 * @alpha
 */
// tslint:disable-next-line:export-name
function createSearchInstrumenterOnce() {
    return instrumenter || (instrumenter = Object(_msfast_search_instrumentation_lib_createInstrumenter__WEBPACK_IMPORTED_MODULE_0__["default"])({
        perf: _msfast_search_logger_lib_performance__WEBPACK_IMPORTED_MODULE_1__,
        scenario: 'Unspecified'
    })); // tslint:disable-line:no-any
}


/***/ }),

/***/ "Cuz1":
/*!*********************************************!*\
  !*** ./lib/search/suiteSearchDispatcher.js ***!
  \*********************************************/
/*! exports provided: switchDispatcher */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchDispatcher", function() { return switchDispatcher; });
/* harmony import */ var _msfast_search_dispatcher_lib_dispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @msfast/search-dispatcher/lib/dispatcher */ "bpGp");
/* harmony import */ var _msfast_search_dispatcher_lib_createDispatcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @msfast/search-dispatcher/lib/createDispatcher */ "Vht5");


var buffering = true;
var buffer = [];
var dispatcher = Object(_msfast_search_dispatcher_lib_createDispatcher__WEBPACK_IMPORTED_MODULE_1__["default"])();
var unregister = dispatcher.register(function (e) { return buffer.push(e); });
Object(_msfast_search_dispatcher_lib_dispatcher__WEBPACK_IMPORTED_MODULE_0__["setDispatcher"])(dispatcher);
/**
 * Switches the dispatcher to dispatch to. Returns any buffered events that
 * should be handed over to a logger.
 *
 * @alpha
 */
// tslint:disable-next-line:export-name
function switchDispatcher(nextDispatcher) {
    Object(_msfast_search_dispatcher_lib_dispatcher__WEBPACK_IMPORTED_MODULE_0__["setDispatcher"])(nextDispatcher);
    if (buffering) {
        buffering = false;
        dispatcher.unregister(unregister);
        var bufferCopy = buffer.slice(0);
        buffer = [];
        return bufferCopy;
    }
    return [];
}


/***/ }),

/***/ "D8Rd":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-prefetch/20191105.6.3/node_modules/@msfast/search-prefetch/lib/createAsyncTokenProvider.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createAsyncTokenProvider; });
function createAsyncTokenProvider(theAsyncTokenProvider) {
    var theProvider = null;
    return function asyncTokenProvider(spec) {
        return theProvider
            ? theProvider(spec)
            : theAsyncTokenProvider.then(function (provider) { return ((theProvider = provider), provider(spec)); });
    };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXN5bmNUb2tlblByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZUFzeW5jVG9rZW5Qcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsT0FBTyxVQUFVLHdCQUF3QixDQUM5QyxxQkFBNkM7SUFFN0MsSUFBSSxXQUFXLEdBQXlCLElBQUksQ0FBQztJQUM3QyxPQUFPLFNBQVMsa0JBQWtCLENBQ2hDLElBQXdCO1FBRXhCLE9BQU8sV0FBVztZQUNoQixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUN4QixVQUFBLFFBQVEsSUFBSSxPQUFBLENBQUMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQTFDLENBQTBDLENBQ3ZELENBQUM7SUFDUixDQUFDLENBQUM7QUFDSixDQUFDIn0=

/***/ }),

/***/ "FMHC":
/*!********************************!*\
  !*** ./lib/SuiteNavManager.js ***!
  \********************************/
/*! exports provided: DEFAULT_SUITENAV_HEIGHT, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_SUITENAV_HEIGHT", function() { return DEFAULT_SUITENAV_HEIGHT; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _ms_odsp_utilities_lib_theming_SuiteNavTheming__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ms/odsp-utilities/lib/theming/SuiteNavTheming */ "aDzz");
/* harmony import */ var _ms_odsp_utilities_lib_theming_SuiteNavTheming__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_theming_SuiteNavTheming__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _ms_odsp_utilities_lib_models_store_BaseDataStore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ms/odsp-utilities/lib/models/store/BaseDataStore */ "IveV");
/* harmony import */ var _ms_odsp_utilities_lib_models_store_BaseDataStore__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_models_store_BaseDataStore__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ms/odsp-utilities/lib/models/store/DataStoreCachingType */ "y91V");
/* harmony import */ var _ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _models_IShellBaseTheme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./models/IShellBaseTheme */ "iIlt");
/* harmony import */ var _models_SuiteNavLinkIds__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./models/SuiteNavLinkIds */ "ogh3");
/* harmony import */ var _dataAccess_SPOSuiteNavDataSource__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./dataAccess/SPOSuiteNavDataSource */ "ZG7e");
/* harmony import */ var _dataAccess_OnPremSuiteNavDataSource__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./dataAccess/OnPremSuiteNavDataSource */ "5Oht");
/* harmony import */ var _O365ShellWrapper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./O365ShellWrapper */ "019d");
/* harmony import */ var _search_manageSearchBoxSettings__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./search/manageSearchBoxSettings */ "7fwW");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Data source for the suite nav.
 */
















/**
 * @internal
 */
var DEFAULT_SUITENAV_HEIGHT = '50px';
var CACHE_PREFIX = 'SPPPLATSuiteNav';
var SERVICE_KEY = 'SuiteNavService';
var DATA_KEY = 'Data';
var DATE_KEY = 'CacheDate';
var VERSION_KEY = 'CacheVersion';
var SESSION_KEY = 'CachedThisSession';
var THEME_KEY = 'ThemeData';
var REACT_SHELL_BOOTSTRAPPER_HOST = 'https://shellprod.msocdn.com';
var REACT_SHELL_BOOTSTRAPPER_PPE_HOST = 'https://shellppe.msocdn.com';
var REACT_SHELL_BOOTSTRAPPER_API = '/api/shellbootstrapper/business/oneshell';
// This constant can be used to invalidate the cache if we make incompatible changes
var CACHE_VERSION = 1;
var cache = new _ms_odsp_utilities_lib_models_store_BaseDataStore__WEBPACK_IMPORTED_MODULE_7___default.a(CACHE_PREFIX, _ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8___default.a.local);
var logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_LogSource"].create('SuiteNavManager');
/**
 * @internal
 */
var SuiteNavManager = /** @class */ (function () {
    function SuiteNavManager(suiteNavDiv, serviceScope, isFullPageLoad) {
        if (isFullPageLoad === void 0) { isFullPageLoad = true; }
        var _this = this;
        this._suiteNavDiv = suiteNavDiv;
        this._serviceScope = serviceScope;
        this._isFullPageLoad = isFullPageLoad;
        serviceScope.whenFinished(function () {
            _this._httpClient = serviceScope.consume(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_4__["SPHttpClient"].serviceKey);
        });
    }
    /**
     * Loads the SuiteNav into the page by obtaining the data, building the model, getting the shell wrapper
     * and rendering it onto the page.
     */
    SuiteNavManager.prototype.loadSuiteNav = function (suiteNavConfig) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(suiteNavConfig, 'suiteNavConfig');
        if (isSuiteNavNewFlowFlightEnabled()) {
            this._initializeSuiteNavConfig(suiteNavConfig);
            this._completeSuiteNavNewFlow();
        }
        else {
            this._initializeSuiteNavConfig(suiteNavConfig);
            var o365ShellWrapper_1 = new _O365ShellWrapper__WEBPACK_IMPORTED_MODULE_14__["default"]();
            // If the shell has been successfully loaded before, always attempt to contact the server for fresh NavBarData
            this._suiteNavModelPromise = this._getSuiteNavModel(o365ShellWrapper_1.DoesShellExist());
            this._suiteNavModelPromise.then(function (suiteNavModel) {
                var suiteNavJSPromise = !o365ShellWrapper_1.DoesShellExist() ?
                    getSuiteNavShell(suiteNavModel.CssUrl, suiteNavModel.JsUrl, suiteNavModel) :
                    Promise.resolve(undefined);
                suiteNavJSPromise.then(function () {
                    setO365ShellData(o365ShellWrapper_1, suiteNavModel.NavBarData);
                    _this._renderSuiteNav(o365ShellWrapper_1);
                });
            });
        }
    };
    SuiteNavManager.prototype.loadSuiteNavNewFlow = function (suiteNavConfig) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(suiteNavConfig, 'suiteNavConfig');
        this._initializeSuiteNavConfig(suiteNavConfig);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_QosMonitor"]('SuiteNavManager');
        this._suiteNavLoadStart = _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__["_PerformanceLogger"].now();
        this.o365ShellWrapperPromise.then(function (o365Shell) { return _this._renderSuiteNav(o365Shell, qosMonitor); }).catch(function (errorMessage) {
            qosMonitor.writeUnexpectedFailure('SuiteNavManagerFailure', new Error(errorMessage));
        });
    };
    SuiteNavManager.prototype._initializeSuiteNavConfig = function (suiteNavConfig) {
        this._suiteNavManagerConfiguration = suiteNavConfig;
        if (this._suiteNavManagerConfiguration.updateSuiteNavHeight) {
            this._suiteNavManagerConfiguration.updateSuiteNavHeight(DEFAULT_SUITENAV_HEIGHT);
        }
        this._suiteNavManagerConfiguration.o365ShellRenderSettings.top = this._suiteNavDiv.id;
    };
    SuiteNavManager.prototype._completeSuiteNavNewFlow = function () {
        var _this = this;
        var o365ShellPromise = this.o365ShellWrapperPromise.then(function (o365Shell) {
            _this._renderSuiteNav(o365Shell);
            return o365Shell;
        });
        var suiteNavModelPromise = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('0de83bec-9340-441f-a352-c61e2e1a062e'), '7/3/2019', 'SuiteNavManager_getSuiteNavModel') ?
            this._getSuiteNavModel(!!this._o365ShellWrapper) :
            this._getSuiteNavModel(this._setO365ShellDataCalledOnce ||
                !this._isFullPageLoad);
        Promise.all([o365ShellPromise, suiteNavModelPromise]).then(function (promiseResults) {
            var o365ShellPromiseResult = promiseResults[0];
            var suiteNavModelPromiseResult = promiseResults[1];
            if (o365ShellPromiseResult) {
                setO365ShellData(o365ShellPromiseResult, suiteNavModelPromiseResult.NavBarData);
                if (_this._shouldDelayLoadingResources()) {
                    setTimeout(function () { return o365ShellPromiseResult.GetResourceLoader().loadAll(); }, 5000 /** 5 seconds */);
                }
                _this._setO365ShellDataCalledOnce = true;
                if (!_this._isFullPageLoad) {
                    _this._onRender(o365ShellPromiseResult);
                    _this._onPostRender();
                }
            }
        });
    };
    /**
     * Gets the suite nav data. Tries to grab SPO and OnPrem version in parallel and if SPO fails then
     * the onPrem version is loaded.
     * @param webServerRelativeUrl - represents the SharePoint web server relative URL
     * @param cultureName - represents the name of the culture (e.g. 'en-us')
     * @returns a promise that resolves to a string containing the response from the Suite Nav service.
     */
    SuiteNavManager.prototype._getSuiteNavModel = function (forceFetchData) {
        var _this = this;
        var suiteNavModelPromise;
        forceFetchData = !!forceFetchData || this._wasPageRefreshed();
        if (!forceFetchData && this._isCacheValid() && !isCacheOutdated()) {
            suiteNavModelPromise = this._loadSuiteNavFromCache();
        }
        else {
            clearCache();
            suiteNavModelPromise = this._loadSuiteNavFromServer();
        }
        return suiteNavModelPromise.then(function (model) {
            model.NavBarData = _this._suiteNavManagerConfiguration.modifySuiteNavData(model);
            model.NavBarData.UserDisplayName = _this._getUserDisplayName(model.NavBarData.UserDisplayName);
            model.CacheToken = _this._suiteNavManagerConfiguration.cacheToken;
            model.UserIdentifier = _this._suiteNavManagerConfiguration.systemUserKey;
            model.NavBarData.AppBrandTheme = _models_IShellBaseTheme__WEBPACK_IMPORTED_MODULE_10__["DEFAULT_APP_BRAND_THEME"];
            updateCache(model, _this._suiteNavDataSource.suiteNavService);
            if (model && model.NavBarData && model.NavBarData.Dimensions && model.NavBarData.Dimensions.Top) {
                if (_this._suiteNavManagerConfiguration.updateSuiteNavHeight) {
                    _this._suiteNavManagerConfiguration.updateSuiteNavHeight(model.NavBarData.Dimensions.Top);
                }
            }
            return model;
        });
    };
    SuiteNavManager.prototype._wasPageRefreshed = function () {
        return window.performance &&
            window.performance.navigation &&
            window.performance.navigation.type === 1;
    };
    SuiteNavManager.prototype._loadSuiteNavFromCache = function () {
        var _this = this;
        return new Promise(function (complete) {
            cache.getValue(SERVICE_KEY) ===
                0 /* SPO */ ?
                _this._suiteNavDataSource = _this._createSPODataSource() :
                _this._suiteNavDataSource = _this._createOnPremDataSource();
            complete(cache.getValue(DATA_KEY));
        });
    };
    SuiteNavManager.prototype._loadSuiteNavFromServer = function () {
        var _this = this;
        this._suiteNavDataSource = this._createSPODataSource();
        var onPremDataSource = this._createOnPremDataSource();
        var onPremSuiteNavResponse = onPremDataSource.loadData();
        onPremSuiteNavResponse.catch(function () {
            createSuiteNavErrorLogEntry('loadData', 'Failed to retrieve Hybrid SuiteNavData');
        });
        return this._suiteNavDataSource.loadData().then(function (response) {
            return response;
        }).catch(function () {
            createSuiteNavErrorLogEntry('loadData', 'Failed to retrieve SPO SuiteNavData');
            _this._suiteNavDataSource = onPremDataSource;
            return onPremSuiteNavResponse;
        });
    };
    Object.defineProperty(SuiteNavManager.prototype, "o365ShellWrapperPromise", {
        get: function () {
            var _this = this;
            if (!this._o365ShellPromise) {
                if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('1c270e87-f8ad-4bb4-8fa1-51f2458471d8'), '2019/10/28', 'Use preloaded suiteNav') // tslint:disable-line:max-line-length
                    && _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1136 /* O365ShellModuleJSClient */)) {
                    var o365ShellWrapper_2 = new _O365ShellWrapper__WEBPACK_IMPORTED_MODULE_14__["default"]();
                    if (o365ShellWrapper_2.DoesShellExist()) {
                        // VSO:793997 - Once the server-side code is in place, we should add a perf marker
                        this._suiteNavModuleLoaded = _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__["_PerformanceLogger"].now();
                        this._o365ShellWrapper = o365ShellWrapper_2;
                        this._o365ShellPromise = Promise.resolve(o365ShellWrapper_2);
                    }
                    else {
                        this._o365ShellPromise = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["SPComponentLoader"].loadScript(getShellBootstrapUrl()).then(function () {
                            if (o365ShellWrapper_2.DoesShellExist()) {
                                _this._suiteNavModuleLoaded = _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__["_PerformanceLogger"].now();
                                _this._o365ShellWrapper = o365ShellWrapper_2;
                                return _this._o365ShellWrapper;
                            }
                        });
                    }
                }
                else {
                    this._o365ShellPromise =
                        _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["SPComponentLoader"].loadScript(getShellBootstrapUrl()).then(function () {
                            var o365ShellWrapper = new _O365ShellWrapper__WEBPACK_IMPORTED_MODULE_14__["default"]();
                            if (o365ShellWrapper.DoesShellExist()) {
                                _this._suiteNavModuleLoaded = _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__["_PerformanceLogger"].now();
                                _this._o365ShellWrapper = o365ShellWrapper;
                                return _this._o365ShellWrapper;
                            }
                        });
                }
            }
            return this._o365ShellPromise;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Renders the Suite Nav.
     * @param o365Shell - Represents the Suite Nav shell wrapper.
     * @param suiteNavData - Represents the Suite Nav data that will be used for
     * rendering.
     */
    SuiteNavManager.prototype._renderSuiteNav = function (o365Shell, qosMonitor) {
        var _this = this;
        if (o365Shell && !this._renderedOnce) {
            this._renderedOnce = true;
            if (this._isFullPageLoad) {
                if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1136 /* O365ShellModuleJSClient */)) {
                    this._onRender(o365Shell);
                    this._onPostRender();
                    this._setSearchBoxSettings(o365Shell);
                }
                else {
                    var renderSettings = this._getRenderSettings();
                    var shellRenderedResolver_1 = function () { return void 0; };
                    if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1455) /* isSearchBoxInHeaderFlighted */) {
                        renderSettings = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, renderSettings, Object(_search_manageSearchBoxSettings__WEBPACK_IMPORTED_MODULE_15__["default"])(this._suiteNavManagerConfiguration.userId, new Promise(function (r) { return shellRenderedResolver_1 = r; }), new Promise(function (resolve) { return _this._serviceScope.whenFinished(function () { return resolve(_this._serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__["PageContext"].serviceKey)); }); })));
                    }
                    o365Shell.RenderAsync(renderSettings, function () {
                        shellRenderedResolver_1(o365Shell);
                        _this._suiteNavRendered = _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_9__["_PerformanceLogger"].now();
                        if (qosMonitor) {
                            qosMonitor.writeSuccess({
                                suiteNavLoadStart: _this._suiteNavLoadStart,
                                suiteNavModuleLoaded: _this._suiteNavModuleLoaded,
                                suiteNavRendered: _this._suiteNavRendered
                            });
                        }
                        _this._onRender(o365Shell);
                    }, function () {
                        _this._onPostRender();
                    });
                }
            }
            else if (!isSuiteNavNewFlowFlightEnabled()) {
                this._onRender(o365Shell);
                this._onPostRender();
            }
            o365Shell.OnHasMember('LoadShellPlus', function () {
                _this._loadShellPlus(o365Shell);
            });
            if (o365Shell.Theme) {
                o365Shell.Theme.OnThemeChanged(function (themeData) {
                    return updateCachedThemeData(themeData);
                });
            }
            if (o365Shell.Extensibility && this._suiteNavManagerConfiguration.customButtonData) {
                this._suiteNavManagerConfiguration.customButtonData.forEach(function (buttonConfig) {
                    // Transform configuration data into the format required by the shell
                    var customButton = {
                        id: buttonConfig.id,
                        iconFontName: buttonConfig.iconFontName,
                        iconFontFamily: buttonConfig.iconFontFamily,
                        onHide: buttonConfig.onHide || (buttonConfig.getOnHide && buttonConfig.getOnHide(o365Shell)),
                        onShow: buttonConfig.onShow || (buttonConfig.getOnShow && buttonConfig.getOnShow(o365Shell)),
                        ariaLabel: buttonConfig.ariaLabel,
                        affordanceMenuItemText: buttonConfig.affordanceMenuItemText,
                        isStateless: buttonConfig.isStateless
                    };
                    o365Shell.Extensibility /*Defined at this point*/.AddOrUpdateCustomHeaderButton(customButton);
                });
            }
        }
    };
    SuiteNavManager.prototype._setSearchBoxSettings = function (o365Shell) {
        var _this = this;
        var shellRenderedResolver = function () { return void 0; };
        var searchBoxSettings = Object(_search_manageSearchBoxSettings__WEBPACK_IMPORTED_MODULE_15__["default"])(this._suiteNavManagerConfiguration.userId, new Promise(function (r) { return shellRenderedResolver = r; }), new Promise(function (resolve) { return _this._serviceScope.whenFinished(function () { return resolve(_this._serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__["PageContext"].serviceKey)); }); }));
        // tslint:disable:max-line-length
        if (o365Shell.Search) {
            if (searchBoxSettings.searchBoxCache) {
                o365Shell.Search.SetCache(searchBoxSettings.searchBoxCache);
            }
            if (searchBoxSettings.searchBoxInstrumenter) {
                o365Shell.Search.SetInstrumenter(searchBoxSettings.searchBoxInstrumenter);
            }
            if (searchBoxSettings.GetTokenRequestDictionary) {
                o365Shell.Search.SetTokenProviders(searchBoxSettings.GetTokenRequestDictionary());
            }
        }
        // tslint:enable:max-line-length
        shellRenderedResolver(o365Shell);
    };
    SuiteNavManager.prototype._getRenderSettings = function () {
        if (isSuiteNavNewFlowFlightEnabled()) {
            var cachedThemeData = getCachedThemeData();
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this._suiteNavManagerConfiguration.o365ShellRenderSettings, { initialRenderData: {
                    AppBrandTheme: cachedThemeData ? cachedThemeData : _models_IShellBaseTheme__WEBPACK_IMPORTED_MODULE_10__["DEFAULT_APP_BRAND_THEME"],
                    Culture: this._suiteNavManagerConfiguration.currentUICultureName,
                    CurrentMainLinkElementID: _models_SuiteNavLinkIds__WEBPACK_IMPORTED_MODULE_11__["default"].SITES,
                    IsConsumer: false,
                    ShellBootHost: getShellBootstrapHost(),
                    UserDisplayName: this._getUserDisplayName(this._suiteNavManagerConfiguration.userDisplayName),
                    UserID: this._suiteNavManagerConfiguration.userId,
                    WorkloadId: _models_SuiteNavLinkIds__WEBPACK_IMPORTED_MODULE_11__["default"].SHAREPOINT_WORKLOAD
                }, enableDelayLoading: this._shouldDelayLoadingResources() });
        }
        else {
            return this._suiteNavManagerConfiguration.o365ShellRenderSettings;
        }
    };
    SuiteNavManager.prototype._onRender = function (o365Shell) {
        var actionsMap = this._suiteNavManagerConfiguration.getActionsMap();
        if (actionsMap && Object.keys(actionsMap).length > 0) {
            o365Shell.Navigation.OnLinkClick(function (eventArgs) {
                var action = actionsMap && actionsMap[eventArgs.Id];
                if (action) {
                    action();
                }
            });
        }
        if (this._suiteNavManagerConfiguration.hamburgerCallback) {
            if (o365Shell.Navigation.OnHamburgerButtonClick) {
                o365Shell.Navigation.OnHamburgerButtonClick(this._suiteNavManagerConfiguration.hamburgerCallback);
            }
        }
    };
    SuiteNavManager.prototype._onPostRender = function () {
        if (this._suiteNavManagerConfiguration.suiteNavPostRenderCallback) {
            this._suiteNavManagerConfiguration.suiteNavPostRenderCallback();
        }
    };
    /**
      * LoadShellPlus will start downloading additional files required for notifications
      * and such. Once ShellPlus is ready, postRenderActions will be called.
      */
    SuiteNavManager.prototype._loadShellPlus = function (o365Shell) {
        return new Promise(function () {
            o365Shell.LoadShellPlus();
        }).catch(function (errorMessage) {
            createSuiteNavErrorLogEntry('loadShellPlus', errorMessage);
        });
    };
    SuiteNavManager.prototype._isCacheValid = function () {
        // Cached data is valid (still usable for rendering) if:
        // - the CSS URL and JS URL are present (if we're trying to load the real suite nav)
        // - the data is for the same user
        // - the cache version is the same
        // - the site client tag is the same (if it's different, the theme has changed)
        var model = cache.getValue(DATA_KEY);
        var oldVersion = cache.getValue(VERSION_KEY);
        var cssJsUrlPresent = model && model.NavBarData && (model.JsUrl.length > 0 && model.CssUrl.length > 0);
        var sameVersion = oldVersion === CACHE_VERSION;
        var sameUser = model && model.UserIdentifier === this._suiteNavManagerConfiguration.systemUserKey;
        var sameCacheToken = model && model.CacheToken === this._suiteNavManagerConfiguration.cacheToken;
        return cssJsUrlPresent && sameVersion && sameUser && sameCacheToken;
    };
    SuiteNavManager.prototype._createSPODataSource = function () {
        return new _dataAccess_SPOSuiteNavDataSource__WEBPACK_IMPORTED_MODULE_12__["default"](this._httpClient, this._suiteNavManagerConfiguration.currentUICultureName, this._suiteNavManagerConfiguration.webServerRelativeUrl);
    };
    SuiteNavManager.prototype._createOnPremDataSource = function () {
        return new _dataAccess_OnPremSuiteNavDataSource__WEBPACK_IMPORTED_MODULE_13__["default"](this._httpClient, this._suiteNavManagerConfiguration.currentUICultureName, this._suiteNavManagerConfiguration.webServerRelativeUrl);
    };
    SuiteNavManager.prototype._getUserDisplayName = function (userDisplayName) {
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('8ac6cd01-3f2b-4639-a832-c9547f1495ad'), '3/13/2019', 'SuiteNavManager _getUserDisplayName')) {
            return userDisplayName;
        }
        else {
            userDisplayName = userDisplayName ||
                this._suiteNavManagerConfiguration && this._suiteNavManagerConfiguration.userDisplayName;
            return userDisplayName;
        }
    };
    SuiteNavManager.prototype._shouldDelayLoadingResources = function () {
        return !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('504b66e5-263c-4bfd-8ad2-5ee443d2fe14'), '8/21/2019', 'SuiteNavManager _shouldDelayLoadingResources');
    };
    return SuiteNavManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (SuiteNavManager);
function updateCache(model, service) {
    cache.setValue(DATA_KEY, model);
    cache.setValue(DATE_KEY, new Date());
    cache.setValue(VERSION_KEY, CACHE_VERSION);
    cache.setValue(SESSION_KEY, true, _ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8___default.a.session);
    cache.setValue(SERVICE_KEY, service);
}
function clearCache() {
    cache.remove(DATA_KEY);
    cache.remove(DATE_KEY);
    cache.remove(VERSION_KEY);
    cache.remove(SERVICE_KEY);
}
function getCachedThemeData() {
    var cachedThemeData;
    var themeDataCache = cache.getValue(THEME_KEY);
    if (themeDataCache && themeDataCache.themeData) {
        cachedThemeData = themeDataCache.themeData;
    }
    return cachedThemeData;
}
function updateCachedThemeData(themeData) {
    var themeCache = {
        themeData: themeData,
        cacheDate: new Date()
    };
    cache.setValue(THEME_KEY, themeCache);
}
function getShellBootstrapHost() {
    var searchParams = new URLSearchParams(window.location.search);
    if (searchParams.get('usePPE') === 'true') {
        return "" + REACT_SHELL_BOOTSTRAPPER_PPE_HOST;
    }
    else {
        return "" + REACT_SHELL_BOOTSTRAPPER_HOST;
    }
}
function getShellBootstrapUrl() {
    return "" + getShellBootstrapHost() + REACT_SHELL_BOOTSTRAPPER_API;
}
function setO365ShellData(o365Shell, navBarData) {
    o365Shell.SetData(navBarData);
}
/**
 * Gets the O365Shell object, once it's loaded. This will also load the shell CSS
 */
function getSuiteNavShell(cssUrl, jsUrl, suiteNavModel) {
    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(cssUrl, 'cssUrl');
    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(jsUrl, 'jsUrl');
    var element = document.createElement('link');
    element.rel = 'stylesheet';
    element.type = 'text/css';
    element.href = cssUrl;
    document.head.appendChild(element);
    // Load themable CSS if we are rendering a fallback shell (e.g. on-prem)
    if (suiteNavModel && suiteNavModel.NavBarData && suiteNavModel.NavBarData.ClientData) {
        try {
            var clientData = JSON.parse(suiteNavModel.NavBarData.ClientData);
            if (clientData && clientData.IsFallbackShell) {
                Object(_ms_odsp_utilities_lib_theming_SuiteNavTheming__WEBPACK_IMPORTED_MODULE_6__["loadFallbackShellThemableCss"])();
            }
        }
        catch (errClientData) {
            // Ignore error parsing ClientData
        }
    }
    return _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_5__["SPComponentLoader"].loadScript(jsUrl);
}
function isCacheOutdated() {
    // "Outdated" means:
    // - it's more than 24 hours old
    // - it was not cached in the current browsing session (only applies if sessionStorage available)
    var cacheDate = Date.parse(cache.getValue(DATE_KEY));
    var currentDate = new Date();
    var cachedThisSession = cache.getValue(SESSION_KEY, _ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8___default.a.session);
    return (isNaN(cacheDate) ||
        currentDate.getTime() - cacheDate > 24 * 60 * 60 * 1000 ||
        (_ms_odsp_utilities_lib_models_store_BaseDataStore__WEBPACK_IMPORTED_MODULE_7___default.a.hasStorageType(_ms_odsp_utilities_lib_models_store_DataStoreCachingType__WEBPACK_IMPORTED_MODULE_8___default.a.session) && !cachedThisSession));
}
/**
 * Create a log entry for logging
 * @param moduleName - represents the module that the logger was called in
 * @param errorMessage - represents the error string that occured
 */
function createSuiteNavErrorLogEntry(moduleName, errorMessage) {
    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_3__["_TraceLogger"].logVerbose(logSource, 'SuiteNavManager ' + moduleName + ' ' + errorMessage);
}
function isSuiteNavNewFlowFlightEnabled() {
    return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1309 /* SPClientSuiteNavCommon */);
}


/***/ }),

/***/ "I6O9":
/*!***************************************!*\
  !*** external "@microsoft/sp-loader" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_I6O9__;

/***/ }),

/***/ "IveV":
/*!**********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/models/store/BaseDataStore.js ***!
  \**********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var DataStoreCachingType_1 = __webpack_require__(/*! ./DataStoreCachingType */ "y91V");
// DataStore class is used for transparent caching of data in memory and/or browser storage
// - Parameter defaultCachingType defines whether you want to use browser storage for all operations
// and which type of storage - session or local
// - Parameter dataStoreKey is used to prefix every key in browser storage. Actual key for browser storage
// will be dataStoreKey + key used in setValue method.
// - If DataStore is instantiated with some type of browser caching enabled - it will test if browser storage
// is available and use it. If it's not it will fall back to in-memory cache.
// - If DataStore is instantiated from two different places with same dataStoreKey and some type of
// browser storage caching, the memory storage will be shared as well as browser storage.
var DataStore = /** @class */ (function () {
    function DataStore(dataStoreKey, defaultCachingType) {
        if (defaultCachingType === void 0) { defaultCachingType = DataStoreCachingType_1.default.none; }
        DataStore.init();
        this.dataStoreKey = dataStoreKey;
        this.defaultCachingType = defaultCachingType;
        if (defaultCachingType === DataStoreCachingType_1.default.none) {
            this.dataStore = {};
        }
        else {
            var store = DataStore._dataStore[this.dataStoreKey];
            if (store === undefined) {
                DataStore._dataStore[this.dataStoreKey] = {};
            }
            this.dataStore = DataStore._dataStore[this.dataStoreKey];
        }
    }
    DataStore.hasStorageType = function (storageType) {
        DataStore.init();
        switch (storageType) {
            case DataStoreCachingType_1.default.none: return true;
            case DataStoreCachingType_1.default.sharedMemory: return true;
            case DataStoreCachingType_1.default.session: return !!DataStore._sessionStorage;
            case DataStoreCachingType_1.default.local: return !!DataStore._localStorage;
        }
        return false;
    };
    DataStore.init = function () {
        if (DataStore._initialized) {
            return;
        }
        // Need a try/catch since window.localStorage can throw.
        try {
            if ('localStorage' in window && window.localStorage && DataStore.testStorage(window.localStorage)) {
                DataStore._localStorage = window.localStorage;
            }
        }
        catch (exUsingLocalStorage) {
            // do nothing
        }
        try {
            if ('sessionStorage' in window && window.sessionStorage && DataStore.testStorage(window.sessionStorage)) {
                DataStore._sessionStorage = window.sessionStorage;
            }
        }
        catch (exUsingSessionStorage) {
            // do nothing
        }
        // Fallback logic
        if (DataStore._localStorage == null) {
            DataStore._localStorage = DataStore._sessionStorage;
        }
        DataStore._initialized = true;
    };
    /** Need to check whether the value in localStorage is of the correct type.
     * In Private Browsing in Safari, for example, localStorage is accessible,
     * but all of the non-built-in properties return undefined, and setting
     * such a property causes an exception.
     */
    DataStore.testStorage = function (storage) {
        var _testKey = "BrowserStorageTest";
        var _testValue = "1";
        var result = false;
        try {
            storage.setItem(_testKey, _testValue);
            if (storage.getItem(_testKey) === _testValue) {
                result = true;
            }
            storage.removeItem(_testKey);
        }
        catch (e) { /* no-op, return false */ }
        return result;
    };
    DataStore.prototype.setValue = function (key, value, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        this.dataStore[key] = value;
        var storage = this.getStorage(cachingTypeOverride);
        if (storage) {
            try {
                var objectsFound = [];
                var s = JSON.stringify(value, function (key, value) {
                    if (typeof value === 'object' && value !== null) {
                        if (objectsFound.indexOf(value) !== -1) {
                            // discard the key if circular dependency was found
                            return;
                        }
                        // Otherwise store value in the cache
                        objectsFound.push(value);
                    }
                    return value;
                });
                // empty cache
                objectsFound = null;
                storage.setItem(this.dataStoreKey + key, s);
            }
            catch (e) {
                // do nothing
            }
        }
    };
    DataStore.prototype.getValue = function (key, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        var value = this.dataStore[key];
        var storage = this.getStorage(cachingTypeOverride);
        if (value === undefined && storage) {
            var s = storage.getItem(this.dataStoreKey + key);
            if (s) {
                try {
                    value = JSON.parse(s);
                    this.dataStore[key] = value;
                }
                catch (e) {
                    value = undefined;
                }
            }
        }
        return value;
    };
    DataStore.prototype.remove = function (key, cachingTypeOverride, normalizeKey) {
        if (normalizeKey === void 0) { normalizeKey = true; }
        key = normalizeKey ? this.normalizeKey(key) : key;
        var storage = this.getStorage(cachingTypeOverride);
        if (storage) {
            storage.removeItem(this.dataStoreKey + key);
        }
        delete this.dataStore[key];
    };
    DataStore.prototype.getStorage = function (cachingTypeOverride) {
        var cachingType = cachingTypeOverride ? cachingTypeOverride : this.defaultCachingType;
        switch (cachingType) {
            case DataStoreCachingType_1.default.none:
                return null;
            case DataStoreCachingType_1.default.sharedMemory:
                return null;
            case DataStoreCachingType_1.default.session:
                return DataStore._sessionStorage;
            case DataStoreCachingType_1.default.local:
                return DataStore._localStorage;
        }
        return null;
    };
    DataStore.prototype.normalizeKey = function (key) {
        return key && key.toLowerCase() || '';
    };
    DataStore._sessionStorage = null;
    DataStore._localStorage = null;
    DataStore._dataStore = {};
    DataStore._initialized = false;
    return DataStore;
}());
exports.default = DataStore;
//# sourceMappingURL=BaseDataStore.js.map

/***/ }),

/***/ "J5pV":
/*!********************************!*\
  !*** ./lib/FlexPaneWrapper.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Wrapper around the O365Shell.FlexPane global, preventing other files
 * from needing to access the global
 */

var FlexPaneWrapper = /** @class */ (function () {
    function FlexPaneWrapper() {
    }
    /* tslint:disable:no-any */
    FlexPaneWrapper.prototype.OnFlexPaneVisibilityChanged = function (callback) {
        /* tslint:enable:no-any */
        try {
            return O365Shell.FlexPane.OnFlexPaneVisibilityChanged(callback);
        }
        catch (e) {
            this._createFlexPaneWrapperErrorLogEntry('OnFlexPaneVisibilityChanged', e);
        }
    };
    FlexPaneWrapper.prototype.OpenFlexPaneForProvider = function (provider) {
        try {
            O365Shell.FlexPane.OpenFlexPaneForProvider(provider);
        }
        catch (e) {
            this._createFlexPaneWrapperErrorLogEntry('OpenFlexPaneForProvider', e);
        }
    };
    FlexPaneWrapper.prototype.CloseFlexPaneForProvider = function (provider) {
        try {
            O365Shell.FlexPane.CloseFlexPaneForProvider(provider);
        }
        catch (e) {
            this._createFlexPaneWrapperErrorLogEntry('CloseFlexPaneForProvider', e);
        }
    };
    /**
     * Create a log entry for logging
     * @param moduleName represents the module that the logger was called in
     * @param errorMessage represents the error string that occured
     * @returns a SuiteNav Error Log Entry
     */
    FlexPaneWrapper.prototype._createFlexPaneWrapperErrorLogEntry = function (moduleName, errorMessage) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(FlexPaneWrapper.logSource, 'FlexPaneWrapper ' + moduleName + ' ' + errorMessage);
    };
    FlexPaneWrapper.logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('FlexPaneWrapper');
    return FlexPaneWrapper;
}());
/* harmony default export */ __webpack_exports__["default"] = (FlexPaneWrapper);


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "PleR":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-instrumentation/20191105.6.3/node_modules/@msfast/search-instrumentation/lib/createInstrumenter.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createInstrumenter; });
/* harmony import */ var _msfast_search_dispatcher_lib_createDispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @msfast/search-dispatcher/lib/createDispatcher */ "Vht5");
/* harmony import */ var _msfast_search_prefetch_lib_generateGuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @msfast/search-prefetch/lib/generateGuid */ "sEEg");
var __assign = (undefined && undefined.__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);
};


var marks = [
    "markAppBoot",
    "markHeaderBoot",
    "markSbInteractive",
    "markSbReady",
    "markZeroQueryReady"
];
var markDependencies = {
    markAppBoot: [],
    markHeaderBoot: ["markAppBoot"],
    markSbInteractive: ["markHeaderBoot"],
    markSbReady: ["markSbInteractive"],
    markZeroQueryReady: ["markSbReady"],
    SbQuerySubmitted: ["markSbReady"],
    SerpFetchStart: ["SbQuerySubmitted"],
    SerpAnswerFetchDone: ["SerpFetchStart"],
    SerpFetchDone: ["SerpFetchStart"],
    SerpAnswersRenderDone: [
        "SerpFetchStart",
        "SbQuerySubmitted",
        "SerpAnswerFetchDone"
    ],
    SerpDataReady: ["SerpFetchStart", "SerpFetchDone"],
    SerpRenderDone: [
        "SerpFetchStart",
        "SerpDataReady",
        "SerpFetchDone",
        "SbQuerySubmitted"
    ]
};
var getNewConversationManager = function () {
    var activeConversation;
    var lastSubmittedConversation;
    var getNewConversation = function () {
        var logicalSearchIds = {};
        var submitted = false;
        var createLogicalSearchIdInternal = function (context) {
            var logicalSearchId = Object(_msfast_search_prefetch_lib_generateGuid__WEBPACK_IMPORTED_MODULE_1__["default"])();
            logicalSearchIds[context] = logicalSearchId;
            return logicalSearchId;
        };
        return {
            conversationId: Object(_msfast_search_prefetch_lib_generateGuid__WEBPACK_IMPORTED_MODULE_1__["default"])(),
            creationTime: Date.now(),
            getSubmittedState: function () {
                return submitted;
            },
            submit: function () {
                submitted = true;
            },
            createLogicalSearchId: createLogicalSearchIdInternal,
            getLogicalSearchId: function (context) {
                return (logicalSearchIds[context] || createLogicalSearchIdInternal(context));
            }
        };
    };
    var startConversationInternal = function () {
        // Store last conversation if it has been submitted
        if (activeConversation && activeConversation.getSubmittedState()) {
            lastSubmittedConversation = activeConversation;
        }
        var conversation = getNewConversation();
        activeConversation = conversation;
        return conversation;
    };
    return {
        startConversation: startConversationInternal,
        getActiveConversation: function () {
            if (!activeConversation || activeConversation.getSubmittedState()) {
                return startConversationInternal();
            }
            return activeConversation;
        },
        getLastSubmittedConversation: function () {
            // Return current conversation if it has been submitted
            if (activeConversation && activeConversation.getSubmittedState()) {
                return activeConversation;
            }
            // In some cases we are have not yet submitted any conversations,
            // for instance on a direct search url navigation. In these cases we create
            // and return a new conversation in the submitted state.
            if (!lastSubmittedConversation) {
                var conversation = getNewConversation();
                conversation.submit();
                lastSubmittedConversation = conversation;
            }
            return lastSubmittedConversation;
        }
    };
};
function createInstrumenter(initialProps) {
    var currentProps = initialProps;
    var doneMarks = {};
    var performanceMarks = marks.reduce(function (partialPerformanceMarks, mark, i) {
        partialPerformanceMarks[mark] = function () {
            if (!doneMarks[mark]) {
                doneMarks[mark] = true;
                currentProps.perf.mark(mark);
            }
            if (i) {
                try {
                    currentProps.perf.measure(marks[i - 1] + "-" + mark, marks[i - 1], mark);
                }
                catch (_a) {
                    /* not supported */
                }
            }
        };
        return partialPerformanceMarks;
    }, {});
    return __assign({}, Object(_msfast_search_dispatcher_lib_createDispatcher__WEBPACK_IMPORTED_MODULE_0__["default"])(), performanceMarks, { conversationManager: getNewConversationManager(), props: currentProps, setProps: function (newProps) {
            this.props = currentProps = __assign({}, this.props, newProps);
            this.dispatch(newProps);
            return currentProps;
        },
        mark: function (eventName) {
            var measureList = [];
            currentProps.perf.mark(eventName);
            var eventDependencies = markDependencies[eventName];
            for (var _i = 0, eventDependencies_1 = eventDependencies; _i < eventDependencies_1.length; _i++) {
                var dependency = eventDependencies_1[_i];
                try {
                    var measureName = dependency + "-" + eventName;
                    currentProps.perf.measure(measureName, dependency, eventName);
                    var measure = currentProps.perf.getEntriesByName(measureName).pop();
                    measure && measureList.push(measure);
                }
                catch (_a) {
                    /* Guard against measure requests where the prereq has not been fulfilled */
                }
            }
            return measureList;
        } });
}
//# sourceMappingURL=data:application/json;base64,[encoded data, 4888 characters]

/***/ }),

/***/ "S9p2":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-logger/20191105.6.3/node_modules/@msfast/search-logger/lib/performance.js ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: measure, now, mark, getEntriesByType, getEntriesByName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measure", function() { return measure; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "now", function() { return now; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mark", function() { return mark; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntriesByType", function() { return getEntriesByType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntriesByName", function() { return getEntriesByName; });
var start = new Date().valueOf();
var marks = {};
var timeline = [];
var perfApiFeatureSupported = function (feature) {
    return window.performance && performance[feature];
};
var doMeasure = function (name, startMark, endMark) {
    try {
        window.performance.measure(name, startMark, endMark);
    }
    catch (e) {
        return null;
    }
    var measures = window.performance.getEntriesByName(name, "measure");
    if (measures.length > 0) {
        return measures[measures.length - 1];
    }
    return null;
};
var doApproximateMeasure = function (name, startMark, endMark) {
    var startMarkTime = marks[startMark];
    var endMarkTime = endMark ? marks[endMark] : now();
    if (startMarkTime && endMarkTime) {
        return {
            duration: endMarkTime - startMarkTime,
            entryType: "measure",
            name: name,
            startTime: startMarkTime,
            toJSON: function () {
                return null;
            }
        };
    }
    return null;
};
var doApproximateMark = function (name) {
    timeline.push({
        entryType: "mark",
        name: name,
        startTime: start,
        duration: 0,
        toJSON: function () {
            return null;
        }
    });
    marks[name] = now();
};
var measure = perfApiFeatureSupported("measure")
    ? doMeasure
    : doApproximateMeasure;
var now = perfApiFeatureSupported("now")
    ? performance.now.bind(window.performance)
    : function () { return new Date().valueOf() - start; };
var mark = perfApiFeatureSupported("mark")
    ? window.performance.mark.bind(window.performance)
    : doApproximateMark;
var getEntriesByType = perfApiFeatureSupported("getEntriesByType")
    ? window.performance.getEntriesByType.bind(window.performance)
    : function () { return []; };
var getEntriesByName = perfApiFeatureSupported("getEntriesByName")
    ? window.performance.getEntriesByName.bind(window.performance)
    : function () { return []; };


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "Vht5":
/*!*******************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-dispatcher/20191105.6.3/node_modules/@msfast/search-dispatcher/lib/createDispatcher.js ***!
  \*******************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createDispatcher; });
/**
 * Creates a minimal dispatcher instance. Note that the dispatcher lacks
 * features like argument validation to keep it as tiny as possible.
 */
function createDispatcher() {
    var listeners = [];
    return {
        register: function (callback) {
            return "" + (listeners.push(callback) - 1);
        },
        unregister: function (id) {
            listeners[parseInt(id, 10)] = 0;
        },
        dispatch: function (payload) {
            listeners.forEach(function (listener) { return listener && listener(payload); });
        }
    };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVEaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsZ0JBQWdCO0lBQ3RDLElBQU0sU0FBUyxHQUFzQyxFQUFFLENBQUM7SUFDeEQsT0FBTztRQUNMLFFBQVEsRUFBUixVQUFTLFFBQThCO1lBQ3JDLE9BQU8sTUFBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxVQUFVLEVBQVYsVUFBVyxFQUFVO1lBQ25CLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxRQUFRLEVBQVIsVUFBUyxPQUFVO1lBQ2pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxRQUFRLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUE3QixDQUE2QixDQUFDLENBQUM7UUFDL0QsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIn0=

/***/ }),

/***/ "X+PM":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_X_PM__;

/***/ }),

/***/ "ZG7e":
/*!*************************************************!*\
  !*** ./lib/dataAccess/SPOSuiteNavDataSource.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__);
/**
 * @file SPOSuiteNavDataSource.ts
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */


var SPOSuiteNavDataSource = /** @class */ (function () {
    /**
     * Initializes a new instance of the SPO
     * @TODO Task 161973 Add PageContext and set the
     * webPermissionMask/suiteNavData.UserDisplayName/webServerRelativeUrl/currentUICultureName
     */
    function SPOSuiteNavDataSource(httpClient, currentUICultureName, webServerRelativeUrl) {
        this.suiteNavService = 0 /* SPO */;
        this._currentUICultureName = currentUICultureName;
        this._spHttpClient = httpClient;
        this._siteRelUrl = webServerRelativeUrl === '/' ? '' : webServerRelativeUrl;
    }
    // Downloads the SPO version of the SuiteNavData
    SPOSuiteNavDataSource.prototype.loadData = function () {
        var url = this._siteRelUrl
            + '/_layouts/15/online/handlers/SpoSuiteLinks.ashx?Locale='
            + this._currentUICultureName
            + '&v=2&mobilereq=0&msajax=1';
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('SPOSuiteNavDataSource');
        return this._spHttpClient.post(url, _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_1__["SPHttpClient"].configurations.v1, {})
            .then(function (response) {
            if (response.status !== 200 || response.headers.get('SharePointError')) {
                var errorMessage = 'Failed to retrieve SPO SuiteNavData';
                var error = new Error(errorMessage);
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(SPOSuiteNavDataSource._logSource, errorMessage);
                qosMonitor.writeUnexpectedFailure('FailedToRetrieveSPOSuiteNavData', error, {
                    responseStatus: response ? response.status : '',
                    correlationId: response ? response.correlationId : ''
                });
                return Promise.reject(errorMessage);
            }
            qosMonitor.writeSuccess();
            return response.json().then(function (jsonResponse) {
                return jsonResponse;
            });
        });
    };
    // @TODO Bug 169685 change to readonly
    SPOSuiteNavDataSource._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('SPOSuiteNavDataSource');
    return SPOSuiteNavDataSource;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPOSuiteNavDataSource);


/***/ }),

/***/ "aDzz":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/theming/SuiteNavTheming.js ***!
  \*******************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var load_themed_styles_1 = __webpack_require__(/*! @microsoft/load-themed-styles */ "jOlS");
function loadFallbackShellThemableCss() {
    var strCss = ".o365cs-base .o365cs-nav-contextMenu {" +
        "    background-color: '[theme:white, default:#ffffff]';" + // BackgroundOverlay
        "}\n" +
        ".o365cs-base-visibility" +
        "{" +
        "  visibility: visible;" +
        "}\n" +
        ".o365cs-base .ms-fcl-tdr," +
        ".o365cs-base .ms-fcl-tdr-h:hover," +
        ".o365cs-base .ms-fcl-tdr-f:focus" +
        "{" +
        "    color: '[theme:themeDarker, default:#104a7d]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tdr," +
        ".o365cs-base .ms-bgc-tdr-h:hover," +
        ".o365cs-base .ms-bgc-tdr-f:focus" +
        "{" +
        "    background-color: '[theme:themeDarker, default:#104a7d]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tdr," +
        ".o365cs-base .ms-bcl-tdr-h:hover," +
        ".o365cs-base .ms-bcl-tdr-f:focus" +
        "{" +
        "    border-color: '[theme:themeDarker, default:#104a7d]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-td," +
        ".o365cs-base .ms-fcl-td-h:hover," +
        ".o365cs-base .ms-fcl-td-f:focus" +
        "{" +
        "    color: '[theme:themeDark, default:#0d62aa]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-td," +
        ".o365cs-base .ms-bgc-td-h:hover," +
        ".o365cs-base .ms-bgc-td-f:focus" +
        "{" +
        "    background-color: '[theme:themeDark, default:#0d62aa]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-td," +
        ".o365cs-base .ms-bcl-td-h:hover," +
        ".o365cs-base .ms-bcl-td-f:focus" +
        "{" +
        "    border-color: '[theme:themeDark, default:#0d62aa]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tda," +
        ".o365cs-base .ms-fcl-tda-h:hover," +
        ".o365cs-base .ms-fcl-tda-f:focus" +
        "{" +
        "    color: '[theme:themeDarkAlt, default:#106ebe]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tda," +
        ".o365cs-base .ms-bgc-tda-h:hover," +
        ".o365cs-base .ms-bgc-tda-f:focus" +
        "{" +
        "    background-color: '[theme:themeDarkAlt, default:#106ebe]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tda," +
        ".o365cs-base .ms-bcl-tda-h:hover," +
        ".o365cs-base .ms-bcl-tda-f:focus" +
        "{" +
        "    border-color: '[theme:themeDarkAlt, default:#106ebe]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tp," +
        ".o365cs-base .ms-fcl-tp-h:hover," +
        ".o365cs-base .ms-fcl-tp-f:focus" +
        "{" +
        "    color: '[theme:themePrimary, default:#0078d7]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tp," +
        ".o365cs-base .ms-bgc-tp-h:hover," +
        ".o365cs-base .ms-bgc-tp-f:focus," +
        ".o365cs-base.ms-bgc-tp" +
        "{" +
        "    background-color: '[theme:themePrimary, default:#0078d7]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tp," +
        ".o365cs-base .ms-bcl-tp-h:hover," +
        ".o365cs-base .ms-bcl-tp-f:focus" +
        "{" +
        "    border-color: '[theme:themePrimary, default:#0078d7]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-ts," +
        ".o365cs-base .ms-fcl-ts-h:hover," +
        ".o365cs-base .ms-fcl-ts-f:focus" +
        "{" +
        "    color: '[theme:themeSecondary, default:#2b88d8]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-ts," +
        ".o365cs-base .ms-bgc-ts-h:hover," +
        ".o365cs-base .ms-bgc-ts-f:focus" +
        "{" +
        "    background-color: '[theme:themeSecondary, default:#2b88d8]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-ts," +
        ".o365cs-base .ms-bcl-ts-h:hover," +
        ".o365cs-base .ms-bcl-ts-f:focus" +
        "{" +
        "    border-color: '[theme:themeSecondary, default:#2b88d8]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tt," +
        ".o365cs-base .ms-fcl-tt-h:hover," +
        ".o365cs-base .ms-fcl-tt-f:focus" +
        "{" +
        "    color: '[theme:themeTertiary, default:#71afe5]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tt," +
        ".o365cs-base .ms-bgc-tt-h:hover," +
        ".o365cs-base .ms-bgc-tt-f:focus" +
        "{" +
        "    background-color: '[theme:themeTertiary, default:#71afe5]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tt," +
        ".o365cs-base .ms-bcl-tt-h:hover," +
        ".o365cs-base .ms-bcl-tt-f:focus" +
        "{" +
        "    border-color: '[theme:themeTertiary, default:#71afe5]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tl," +
        ".o365cs-base .ms-fcl-tl-h:hover," +
        ".o365cs-base .ms-fcl-tl-f:focus" +
        "{" +
        "    color: '[theme:themeLight, default:#c7e0f4]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tl," +
        ".o365cs-base .ms-bgc-tl-h:hover," +
        ".o365cs-base .ms-bgc-tl-f:focus" +
        "{" +
        "    background-color: '[theme:themeLight, default:#c7e0f4]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tl," +
        ".o365cs-base .ms-bcl-tl-h:hover," +
        ".o365cs-base .ms-bcl-tl-f:focus" +
        "{" +
        "    border-color: '[theme:themeLight, default:#c7e0f4]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tlr," +
        ".o365cs-base .ms-fcl-tlr-h:hover," +
        ".o365cs-base .ms-fcl-tlr-f:focus" +
        "{" +
        "    color: '[theme:themeLighter, default:#deecf9]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tlr," +
        ".o365cs-base .ms-bgc-tlr-h:hover," +
        ".o365cs-base .ms-bgc-tlr-f:focus" +
        "{" +
        "    background-color: '[theme:themeLighter, default:#deecf9]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tlr," +
        ".o365cs-base .ms-bcl-tlr-h:hover," +
        ".o365cs-base .ms-bcl-tlr-f:focus" +
        "{" +
        "    border-color: '[theme:themeLighter, default:#deecf9]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-tlra," +
        ".o365cs-base .ms-fcl-tlra-h:hover," +
        ".o365cs-base .ms-fcl-tlra-f:focus" +
        "{" +
        "    color: '[theme:themeLighterAlt, default:#eff6fc]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-tlra," +
        ".o365cs-base .ms-bgc-tlra-h:hover," +
        ".o365cs-base .ms-bgc-tlra-f:focus" +
        "{" +
        "    background-color: '[theme:themeLighterAlt, default:#eff6fc]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-tlra," +
        ".o365cs-base .ms-bcl-tlra-h:hover," +
        ".o365cs-base .ms-bcl-tlra-f:focus" +
        "{" +
        "    border-color: '[theme:themeLighterAlt, default:#eff6fc]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-w," +
        ".o365cs-base .ms-fcl-w-h:hover," +
        ".o365cs-base .ms-fcl-w-f:focus" +
        "{" +
        "    color: '[theme:white, default:#ffffff]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-w," +
        ".o365cs-base .ms-bgc-w-h:hover," +
        ".o365cs-base .ms-bgc-w-f:focus," +
        ".o365cs-base.ms-bgc-w" +
        "{" +
        "    background-color: '[theme:white, default:#ffffff]';" + // backgroundOverlay
        "}\n" +
        ".o365cs-base .ms-bcl-w," +
        ".o365cs-base .ms-bcl-w-h:hover," +
        ".o365cs-base .ms-bcl-w-f:focus" +
        "{" +
        "    border-color: '[theme:white, default:#ffffff]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-b," +
        ".o365cs-base .ms-fcl-b-h:hover," +
        ".o365cs-base .ms-fcl-b-f:focus" +
        "{" +
        "    color: '[theme:black, default:#000000]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-b.o365cs-nav-closeButton" + // Special case for button to close app launcher, since app launcher is not themed
        "{" +
        "    color: #000000;" +
        "}\n" +
        ".o365cs-base .ms-bgc-b," +
        ".o365cs-base .ms-bgc-b-h:hover," +
        ".o365cs-base .ms-bgc-b-f:focus," +
        ".o365cs-base.ms-bgc-b" +
        "{" +
        "    background-color: '[theme:black, default:#000000]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-b," +
        ".o365cs-base .ms-bcl-b-h:hover," +
        ".o365cs-base .ms-bcl-b-f:focus" +
        "{" +
        "    border-color: '[theme:black, default:#000000]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nd," +
        ".o365cs-base .ms-fcl-nd-h:hover," +
        ".o365cs-base .ms-fcl-nd-f:focus" +
        "{" +
        "    color: '[theme:neutralDark, default:#212121]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nd," +
        ".o365cs-base .ms-bgc-nd-h:hover," +
        ".o365cs-base .ms-bgc-nd-f:focus" +
        "{" +
        "    background-color: '[theme:neutralDark, default:#212121]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nd," +
        ".o365cs-base .ms-bcl-nd-h:hover," +
        ".o365cs-base .ms-bcl-nd-f:focus" +
        "{" +
        "    border-color: '[theme:neutralDark, default:#212121]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-np," +
        ".o365cs-base .ms-fcl-np-h:hover," +
        ".o365cs-base .ms-fcl-np-f:focus" +
        "{" +
        "    color: '[theme:neutralPrimary, default:#333333]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-np," +
        ".o365cs-base .ms-bgc-np-h:hover," +
        ".o365cs-base .ms-bgc-np-f:focus" +
        "{" +
        "    background-color: '[theme:neutralPrimary, default:#333333]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-np," +
        ".o365cs-base .ms-bcl-np-h:hover," +
        ".o365cs-base .ms-bcl-np-f:focus" +
        "{" +
        "    border-color: '[theme:neutralPrimary, default:#333333]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-ns," +
        ".o365cs-base .ms-fcl-ns-h:hover," +
        ".o365cs-base .ms-fcl-ns-f:focus" +
        "{" +
        "    color: '[theme:neutralSecondary, default:#666666]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-ns.o365cs-nav-moduleLabel" + // Special case for the module label in the unthemed app launcher
        "{" +
        "    color: #666666;" +
        "}\n" +
        ".o365cs-base .ms-bgc-ns," +
        ".o365cs-base .ms-bgc-ns-h:hover," +
        ".o365cs-base .ms-bgc-ns-f:focus" +
        "{" +
        "    background-color: '[theme:neutralSecondary, default:#666666]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-ns," +
        ".o365cs-base .ms-bcl-ns-h:hover," +
        ".o365cs-base .ms-bcl-ns-f:focus" +
        "{" +
        "    border-color: '[theme:neutralSecondary, default:#666666]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nsa," +
        ".o365cs-base .ms-fcl-nsa-h:hover," +
        ".o365cs-base .ms-fcl-nsa-f:focus" +
        "{" +
        "    color: '[theme:neutralSecondaryAlt, default:#767676]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nsa," +
        ".o365cs-base .ms-bgc-nsa-h:hover," +
        ".o365cs-base .ms-bgc-nsa-f:focus" +
        "{" +
        "    background-color: '[theme:neutralSecondaryAlt, default:#767676]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nsa," +
        ".o365cs-base .ms-bcl-nsa-h:hover," +
        ".o365cs-base .ms-bcl-nsa-f:focus" +
        "{" +
        "    border-color: '[theme:neutralSecondaryAlt, default:#767676]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nt," +
        ".o365cs-base .ms-fcl-nt-h:hover," +
        ".o365cs-base .ms-fcl-nt-f:focus" +
        "{" +
        "    color: '[theme:neutralTertiary, default:#a6a6a6]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nt," +
        ".o365cs-base .ms-bgc-nt-h:hover," +
        ".o365cs-base .ms-bgc-nt-f:focus" +
        "{" +
        "    background-color: '[theme:neutralTertiary, default:#a6a6a6]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nt," +
        ".o365cs-base .ms-bcl-nt-h:hover," +
        ".o365cs-base .ms-bcl-nt-f:focus" +
        "{" +
        "    border-color: '[theme:neutralTertiary, default:#a6a6a6]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nta," +
        ".o365cs-base .ms-fcl-nta-h:hover," +
        ".o365cs-base .ms-fcl-nta-f:focus" +
        "{" +
        "    color: '[theme:neutralTertiaryAlt, default:#c8c8c8]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nta," +
        ".o365cs-base .ms-bgc-nta-h:hover," +
        ".o365cs-base .ms-bgc-nta-f:focus" +
        "{" +
        "    background-color: '[theme:neutralTertiaryAlt, default:#c8c8c8]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nta," +
        ".o365cs-base .ms-bcl-nta-h:hover," +
        ".o365cs-base .ms-bcl-nta-f:focus" +
        "{" +
        "    border-color: '[theme:neutralTertiaryAlt, default:#c8c8c8]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nl," +
        ".o365cs-base .ms-fcl-nl-h:hover," +
        ".o365cs-base .ms-fcl-nl-f:focus" +
        "{" +
        "    color: '[theme:neutralLight, default:#eaeaea]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nl," +
        ".o365cs-base .ms-bgc-nl-h:hover," +
        ".o365cs-base .ms-bgc-nl-f:focus" +
        "{" +
        "    background-color: '[theme:neutralLight, default:#eaeaea]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nl," +
        ".o365cs-base .ms-bcl-nl-h:hover," +
        ".o365cs-base .ms-bcl-nl-f:focus" +
        "{" +
        "    border-color: '[theme:neutralLight, default:#eaeaea]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nlr," +
        ".o365cs-base .ms-fcl-nlr-h:hover," +
        ".o365cs-base .ms-fcl-nlr-f:focus" +
        "{" +
        "    color: '[theme:neutralLighter, default:#f4f4f4]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nlr," +
        ".o365cs-base .ms-bgc-nlr-h:hover," +
        ".o365cs-base .ms-bgc-nlr-f:focus," +
        ".o365cs-base.ms-bgc-nlr" +
        "{" +
        "    background-color: '[theme:neutralLighter, default:#f4f4f4]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nlr," +
        ".o365cs-base .ms-bcl-nlr-h:hover," +
        ".o365cs-base .ms-bcl-nlr-f:focus" +
        "{" +
        "    border-color: '[theme:neutralLighter, default:#f4f4f4]';" +
        "}\n" +
        ".o365cs-base .ms-fcl-nlra," +
        ".o365cs-base .ms-fcl-nlra-h:hover," +
        ".o365cs-base .ms-fcl-nlra-f:focus" +
        "{" +
        "    color: '[theme:neutralLighterAlt, default:#f8f8f8]';" +
        "}\n" +
        ".o365cs-base .ms-bgc-nlra," +
        ".o365cs-base .ms-bgc-nlra-h:hover," +
        ".o365cs-base .ms-bgc-nlra-f:focus," +
        ".o365cs-base.ms-bgc-nlra" +
        "{" +
        "    background-color: '[theme:neutralLighterAlt, default:#f8f8f8]';" +
        "}\n" +
        ".o365cs-base .ms-bcl-nlra," +
        ".o365cs-base .ms-bcl-nlra-h:hover," +
        ".o365cs-base .ms-bcl-nlra-f:focus" +
        "{" +
        "    border-color: '[theme:neutralLighterAlt, default:#f8f8f8]';" +
        "}\n" +
        ".o365cs-base .o365cs-topnavLinkBackground-2" +
        "{" +
        "    background-color: transparent;" +
        "}\n" +
        ".o365cs-base .o365cs-topnavText," +
        ".o365cs-base .o365cs-topnavText:hover" +
        "{" +
        "    color: '[theme:suiteBarText, default:#ffffff]';" + // $SuiteBarText
        "}\n" +
        ".o365cs-base .o365cs-appLauncherBackground" +
        "{" +
        "    background-color: '[theme:themeDarker, default:#104a7d]';" +
        "}\n" +
        ".o365cs-nav-header16 .o365cs-navMenuButton" +
        "{" +
        "    color: '[theme:white, default:#ffffff]';" + // Should this be hardcoded to #ffffff?
        "}\n" +
        ".o365cs-base .o365cs-navMenuButton" +
        "{" +
        "    color: '[theme:suiteBarText, default:#ffffff]';" + // $SuiteBarText
        "}\n" +
        ".o365cs-base.o365cs-topnavBGImage" +
        "{" +
        "    background-position: center top;" +
        "    background-repeat: repeat-x;" +
        "    background-image: none;" + // $ThemeTopnavBackgroundImage
        "}\n" +
        ".o365cs-base.o365cs-topnavBGColor-2" +
        "{" +
        "    background-color: '[theme:suiteBarBackground, default:#000000]';" + // $ThemeTopnavBackgroundColor
        "}\n";
    load_themed_styles_1.loadStyles(strCss);
}
exports.loadFallbackShellThemableCss = loadFallbackShellThemableCss;
//# sourceMappingURL=SuiteNavTheming.js.map

/***/ }),

/***/ "bKG0":
/*!*********************************************!*\
  !*** ./lib/SuiteNavManagerConfiguration.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _models_SuiteNavLinkIds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./models/SuiteNavLinkIds */ "ogh3");

/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Represents a set of app specific configuration for the suite nav manager.
 */



var SUITE_NAV_USE_SPO_BEHAVIOR_KILL_SWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Guid"].parse('22F8084E-9DEB-4642-B63E-E70A7F87C998');
/**
 * SuiteNavManagerConfiguration for the BaseApplication.
 * @internal
 */
var SuiteNavManagerConfiguration = /** @class */ (function () {
    /**
     * Initializes a new instance of the SuiteNavManagerConfiguration.
     * @param suiteNavConfig - Data used to construct an instance of the SuiteNavManagerConfiguration.
     */
    function SuiteNavManagerConfiguration(suiteNavConfig) {
        this._currentUICultureName = suiteNavConfig.currentUICultureName;
        this._settingsLinks = suiteNavConfig.settingsData;
        this._signoutUrl = suiteNavConfig.signoutUrl;
        this._siteClientTag = suiteNavConfig.siteClientTag;
        this._systemUserKey = suiteNavConfig.systemUserKey;
        this._webServerRelativeUrl = suiteNavConfig.webServerRelativeUrl;
        this._isSuiteNavDisabled = !!suiteNavConfig.disableSuiteNav;
        this._isSuiteNavLoadingDeferred = !!suiteNavConfig.deferSuiteNavLoading;
        this._customButtonData = suiteNavConfig.customButtonData;
        this._o365ShellRenderSettings = {
            collapseO365Settings: true,
            disableDelayLoad: false,
            disableShellPlus: false,
            layout: 'Mouse',
            top: undefined // tslint:disable-line:no-any
        };
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Guid"].parse('bc792189-6879-4d06-9c7d-0fcac8abb279'), '04/05/2019', 'SuiteSearchBoxRenderSettings')) {
            var disableSearchBox = !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Guid"].parse('E0B09CB0-1731-4AEC-BD7D-5F8EE2A10737'), '2019/10/08', 'Disable suite nav searchbox based on pagecontext setting')
                ? !!suiteNavConfig.disableSuiteNavSearchBox : false;
            this._o365ShellRenderSettings.enableSearchUX =
                SuiteNavManagerConfiguration.isSearchBoxInHeaderFlighted() && !disableSearchBox,
                this._o365ShellRenderSettings.initialSearchUXVisibility = false;
        }
        this._hamburgerMenuCallback = undefined;
        this._suiteNavPostRenderCallback = undefined;
        this._webTemplateId = suiteNavConfig.webTemplateId;
        this._userDisplayName = suiteNavConfig.userDisplayName;
    }
    SuiteNavManagerConfiguration.isSearchBoxInHeaderFlighted = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPFlight"].isEnabled(1455); // SPHomeSuiteSearchBox
    };
    SuiteNavManagerConfiguration.prototype.isSuiteNavDisabled = function () {
        return this._isSuiteNavDisabled;
    };
    /**
     * Function for disabling the suiteNav from loading
     */
    SuiteNavManagerConfiguration.prototype.disableSuiteNav = function () {
        this._isSuiteNavDisabled = true;
    };
    SuiteNavManagerConfiguration.prototype.isSuiteNavLoadingDeferred = function () {
        return this._isSuiteNavLoadingDeferred;
    };
    /**
     * Function for defering the suiteNav loading
     */
    SuiteNavManagerConfiguration.prototype.deferSuiteNavLoading = function () {
        this._isSuiteNavLoadingDeferred = true;
    };
    /**
     * Function for modifying the suite nav data that came back from the service.
     * @param suiteNavModel - Model is used to modify the resulting suiteNavData
     * @param themeDictionary - Color palette used to change the suiteNav theme colors
     * @returns the new SuiteNav data
     */
    SuiteNavManagerConfiguration.prototype.modifySuiteNavData = function (suiteNavModel) {
        var suiteNavData = suiteNavModel.NavBarData;
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Guid"].parse('5bafa34c-ba7d-4de4-97e8-1cdfb4ce051e'), '3/2/2018', 'Add SharePoint text in SuiteNav Banner')) {
            // This link is mandatory for showing the "SharePoint" text in the Modern SuiteNav.
            suiteNavData.CurrentMainLinkElementID = _models_SuiteNavLinkIds__WEBPACK_IMPORTED_MODULE_3__["default"].SITES;
        }
        suiteNavData.CurrentWorkloadSettingsSubLinks =
            this._settingsLinks && this._settingsLinks.length > 0 ? this._settingsLinks : undefined;
        suiteNavData.FeedbackLink = undefined;
        if (suiteNavData.SignOutLink && this._signoutUrl) {
            suiteNavData.SignOutLink.Url = this._signoutUrl;
        }
        if (suiteNavData.HelpLink) {
            suiteNavData.HelpLink.Url = 'https://go.microsoft.com/fwlink/p/?linkid=827181';
        }
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPKillSwitch"].isActivated(SUITE_NAV_USE_SPO_BEHAVIOR_KILL_SWITCH, '9/08/2017', 'SuiteNavUseSPOBehaviors')) {
            var webTemplate = this._webTemplateId;
            var isMySite = webTemplate === "21" /* mySite */ || webTemplate === "54" /* mySiteHost */;
            // Set SPOBehaviors to true outside of the MySites and MySiteHosts.
            // This prevents certain options from appearing in the nav bar
            // that should not be there, like the old Change The Look.
            suiteNavData.UseSPOBehaviors = !isMySite;
        }
        return suiteNavData;
    };
    /**
     * {@inheritDoc ISuiteNavManagerConfiguration.getActionsMap}
     */
    SuiteNavManagerConfiguration.prototype.getActionsMap = function () {
        return {};
    };
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "systemUserKey", {
        /**
         * Gets the systemUserKey token.
         * @returns the systemUserKey or empty string
         */
        get: function () {
            return this._systemUserKey || '';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "userId", {
        /**
         * Gets the user Id
         */
        get: function () {
            if (this.systemUserKey !== '') {
                return this.systemUserKey.substring(this.systemUserKey.lastIndexOf('|') + 1, this.systemUserKey.indexOf('@'));
            }
            else {
                return '';
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "cacheToken", {
        /**
         * Gets the cache token.
         * @returns the site client tag or empty string
         */
        get: function () {
            /**
             * The site client tag will be something like '0$$16.0.3912.1218' -- the only part
             * we care about is before the $$. This number will be incremented if the user's theme changes.
             */
            var clientTag = this._siteClientTag;
            if (clientTag !== undefined) {
                return clientTag.substring(0, clientTag.indexOf('$$'));
            }
            return '';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "o365ShellRenderSettings", {
        /**
         * Gets the o365ShellRenderSettings for rendering the SuiteNav.
         * @returns _o365ShellRenderSettings
         */
        get: function () {
            return this._o365ShellRenderSettings;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "currentUICultureName", {
        /**
         * Property representing the culture name (e.g. "en-us")
         */
        get: function () {
            return this._currentUICultureName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "webServerRelativeUrl", {
        /**
         * Represents the web server relative url where we would ping the Suite Nav service.
         */
        get: function () {
            return this._webServerRelativeUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "userDisplayName", {
        get: function () {
            return this._userDisplayName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "customButtonData", {
        /**
         * Data for any custom buttons to be added to the suite nav
         */
        get: function () {
            return this._customButtonData;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "hamburgerCallback", {
        get: function () {
            return this._hamburgerMenuCallback;
        },
        set: function (hamburgerCallback) {
            this._hamburgerMenuCallback = hamburgerCallback;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuiteNavManagerConfiguration.prototype, "suiteNavPostRenderCallback", {
        get: function () {
            return this._suiteNavPostRenderCallback;
        },
        set: function (suiteNavPostRenderCallback) {
            this._suiteNavPostRenderCallback = suiteNavPostRenderCallback;
        },
        enumerable: true,
        configurable: true
    });
    tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_1__["virtual"]
    ], SuiteNavManagerConfiguration.prototype, "getActionsMap", null);
    return SuiteNavManagerConfiguration;
}());
/* harmony default export */ __webpack_exports__["default"] = (SuiteNavManagerConfiguration);


/***/ }),

/***/ "bpGp":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-dispatcher/20191105.6.3/node_modules/@msfast/search-dispatcher/lib/dispatcher.js ***!
  \*************************************************************************************************************************************************************************************/
/*! exports provided: setDispatcher, getDispatcher */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDispatcher", function() { return setDispatcher; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDispatcher", function() { return getDispatcher; });
function noop() {
    return "";
}
var dummy = {
    register: noop,
    unregister: noop,
    dispatch: noop
};
var instance = dummy;
var contract = [
    "register",
    "unregister",
    "dispatch"
];
function setDispatcher(dispatcher) {
    if (!dispatcher) {
        throw new Error("Dispatcher argument must be a dispatcher instance.");
    }
    if (!contract.every(function (method) { return typeof dispatcher[method] === "function"; })) {
        throw new Error("Dispatcher argument must implement dispatcher interface.");
    }
    instance = dispatcher;
}
function getDispatcher() {
    return instance;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsSUFBSTtJQUNYLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELElBQU0sS0FBSyxHQUEwQjtJQUNuQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUNGLElBQUksUUFBUSxHQUEwQixLQUFLLENBQUM7QUFFNUMsSUFBTSxRQUFRLEdBQStDO0lBQzNELFVBQVU7SUFDVixZQUFZO0lBQ1osVUFBVTtDQUNYLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFDLFVBQWlDO0lBQzdELElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7S0FDdkU7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBeEMsQ0FBd0MsQ0FBQyxFQUFFO1FBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztLQUM3RTtJQUVELFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMifQ==

/***/ }),

/***/ "cDcd":
/*!************************!*\
  !*** external "react" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_cDcd__;

/***/ }),

/***/ "cj/x":
/*!***********************************************************!*\
  !*** ../sp-search-common/lib/getSharePointEnvironment.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getSharePointEnvironment; });
function getSharePointEnvironment(environment, webAbsoluteUrl) {
    return environment &&
        environment === 'prodbubble' &&
        webAbsoluteUrl &&
        webAbsoluteUrl.toLowerCase().indexOf('microsoft.sharepoint-df.com') > -1
        ? 'spdf'
        : environment;
}


/***/ }),

/***/ "iIlt":
/*!***************************************!*\
  !*** ./lib/models/IShellBaseTheme.js ***!
  \***************************************/
/*! exports provided: DEFAULT_APP_BRAND_THEME */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_APP_BRAND_THEME", function() { return DEFAULT_APP_BRAND_THEME; });
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * Non-standard casing is to match what an external script expects.
 */
var DEFAULT_APP_BRAND_THEME = {
    Primary: '#0078D4'
};


/***/ }),

/***/ "jOlS":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_jOlS__;

/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: SuiteNavManager, DEFAULT_SUITENAV_HEIGHT, SuiteNavManagerConfiguration, BaseSearchBoxInitializer, shellSearch, createSearchInstrumenterOnce, createSearchPrefetchStateOnce, switchSearchDispatcher, asyncAppLevelUpdater */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SuiteNavManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SuiteNavManager */ "FMHC");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuiteNavManager", function() { return _SuiteNavManager__WEBPACK_IMPORTED_MODULE_0__["default"]; });

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

/* harmony import */ var _SuiteNavManagerConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SuiteNavManagerConfiguration */ "bKG0");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuiteNavManagerConfiguration", function() { return _SuiteNavManagerConfiguration__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _search_BaseSearchBoxInitializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./search/BaseSearchBoxInitializer */ "vMVo");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSearchBoxInitializer", function() { return _search_BaseSearchBoxInitializer__WEBPACK_IMPORTED_MODULE_2__["BaseSearchBoxInitializer"]; });

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

/* harmony import */ var _search_createSearchInstrumenterOnce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./search/createSearchInstrumenterOnce */ "A/Iv");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSearchInstrumenterOnce", function() { return _search_createSearchInstrumenterOnce__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _search_createSearchPrefetchStateOnce__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search/createSearchPrefetchStateOnce */ "tFCy");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSearchPrefetchStateOnce", function() { return _search_createSearchPrefetchStateOnce__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _search_suiteSearchDispatcher__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./search/suiteSearchDispatcher */ "Cuz1");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchSearchDispatcher", function() { return _search_suiteSearchDispatcher__WEBPACK_IMPORTED_MODULE_5__["switchDispatcher"]; });

/* harmony import */ var _search_asyncAppLevelUpdater__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./search/asyncAppLevelUpdater */ "oFNc");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asyncAppLevelUpdater", function() { return _search_asyncAppLevelUpdater__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/**
 * Suite Nav library for applications
 *
 * @packagedocumentation
 */









/***/ }),

/***/ "nv8F":
/*!*********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/tslib/1.9.3/node_modules/tslib/tslib.es6.js ***!
  \*********************************************************************************************************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (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__, "__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)
            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 __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 };
}


/***/ }),

/***/ "oFNc":
/*!********************************************!*\
  !*** ./lib/search/asyncAppLevelUpdater.js ***!
  \********************************************/
/*! exports provided: resolveAppLevelUpdaterPromise, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveAppLevelUpdaterPromise", function() { return resolveAppLevelUpdaterPromise; });
var resolveAppLevelUpdaterPromise;
// tslint:disable-next-line:export-name
/* harmony default export */ __webpack_exports__["default"] = (new Promise(function (resolve) { return (resolveAppLevelUpdaterPromise = resolve); }));


/***/ }),

/***/ "ogh3":
/*!***************************************!*\
  !*** ./lib/models/SuiteNavLinkIds.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Strings for the 'Id' option of suite nav links.
 * These are defined by the suite nav team and are used to correlate icons/colors with links.
 */
var SuiteNavLinkIds = /** @class */ (function () {
    function SuiteNavLinkIds() {
    }
    // Settings menu
    SuiteNavLinkIds.CUSTOM_SETTINGS_1 = 'WorkloadSettingsSubLinks1';
    SuiteNavLinkIds.CUSTOM_SETTINGS_2 = 'WorkloadSettingsSubLinks2';
    SuiteNavLinkIds.CUSTOM_SETTINGS_3 = 'WorkloadSettingsSubLinks3';
    SuiteNavLinkIds.FEEDBACK = 'ShellFeedback';
    SuiteNavLinkIds.DIAGNOSTICS = 'Diagnostics';
    SuiteNavLinkIds.O365_SETTINGS = 'ShellO365Settings'; // 'O365 settings'
    SuiteNavLinkIds.ADD_APP = 'SuiteMenu_zz5_MenuItemCreate'; // 'Add an app'
    SuiteNavLinkIds.CREATE_PAGE = 'SuiteMenu_MenuItemCreatePage'; // 'Create a publishing page'
    SuiteNavLinkIds.SITE_CONTENTS = 'SuiteMenu_zz6_MenuItem_ViewAllSiteContents'; // 'Site contents'
    SuiteNavLinkIds.SITE_SETTINGS = 'SuiteMenu_zz7_MenuItem_Settings'; // 'Site settings'
    SuiteNavLinkIds.USER_ACTIVITY = 'UserActivity'; // User activity dialog
    // Person menu
    SuiteNavLinkIds.ABOUT_ME = 'ShellAboutMe'; // 'About me'/'Edit profile'
    SuiteNavLinkIds.SETTINGS = 'ShellSettings'; // 'Account settings' (ODC)
    SuiteNavLinkIds.MY_SETTINGS = 'SuiteMenu_zz2_ID_PersonalInformation'; // 'My Settings' (ODB)
    SuiteNavLinkIds.SIGN_OUT = 'ShellSignout';
    // Help menu
    SuiteNavLinkIds.HELP = 'HelpLink';
    SuiteNavLinkIds.COMMUNITY = 'ShellCommunity';
    SuiteNavLinkIds.PRIVACY = 'ShellPrivacy';
    SuiteNavLinkIds.LEGAL = 'ShellLegal';
    // App switcher
    SuiteNavLinkIds.ADMIN = 'ShellAdmin';
    SuiteNavLinkIds.MAIL = 'ShellMail'; // 'Outlook'/'Outlook.com'
    SuiteNavLinkIds.CALENDAR = 'ShellCalendar';
    SuiteNavLinkIds.PEOPLE = 'ShellPeople';
    SuiteNavLinkIds.ONEDRIVE = 'ShellDocuments'; // 'OneDrive'
    SuiteNavLinkIds.SHAREPOINT = 'ShellSharepoint';
    SuiteNavLinkIds.WORD = 'ShellWordOnline';
    SuiteNavLinkIds.EXCEL = 'ShellExcelOnline';
    SuiteNavLinkIds.POWERPOINT = 'ShellPowerPointOnline';
    SuiteNavLinkIds.ONENOTE = 'ShellOneNoteOnline';
    SuiteNavLinkIds.SITES = 'ShellSites';
    SuiteNavLinkIds.YAMMER = 'ShellYammer';
    SuiteNavLinkIds.TASKS = 'ShellTasks';
    SuiteNavLinkIds.POWER_BI = 'ShellPowerBI';
    SuiteNavLinkIds.DELVE = 'ShellOfficeGraph'; // 'Delve'
    SuiteNavLinkIds.VIDEO = 'ShellVideo';
    SuiteNavLinkIds.ALCHEMY = 'ShellAlchemy';
    SuiteNavLinkIds.SMILE = 'ShellSendASmile';
    // Workload Id
    SuiteNavLinkIds.SHAREPOINT_WORKLOAD = 'Sharepoint';
    return SuiteNavLinkIds;
}());
/* harmony default export */ __webpack_exports__["default"] = (SuiteNavLinkIds);


/***/ }),

/***/ "s77q":
/*!**********************************!*\
  !*** ./lib/NavigationWrapper.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file Wrapper around the O365Shell.Navigation global, preventing other
 * files from needing to access the global
 */
var NavigationWrapper = /** @class */ (function () {
    function NavigationWrapper() {
    }
    NavigationWrapper.prototype.OnLinkClick = function (callback) {
        return O365Shell.Navigation.OnLinkClick(callback);
    };
    NavigationWrapper.prototype.OnHamburgerButtonClick = function (callback) {
        return O365Shell.Navigation.OnHamburgerButtonClick(callback);
    };
    return NavigationWrapper;
}());
/* harmony default export */ __webpack_exports__["default"] = (NavigationWrapper);


/***/ }),

/***/ "sEEg":
/*!***********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@msfast/search-prefetch/20191105.6.3/node_modules/@msfast/search-prefetch/lib/generateGuid.js ***!
  \***********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (function () {
    var s4 = function () {
        return Math.floor((1 + Math.random()) * 0x10000)
            .toString(16)
            .substring(1);
    };
    return (s4() +
        s4() +
        "-" +
        s4() +
        "-" +
        s4() +
        "-" +
        s4() +
        "-" +
        s4() +
        s4() +
        s4());
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVHdWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZTtJQUNiLElBQU0sRUFBRSxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUM3QyxRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ1osU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FDTCxFQUFFLEVBQUU7UUFDSixFQUFFLEVBQUU7UUFDSixHQUFHO1FBQ0gsRUFBRSxFQUFFO1FBQ0osR0FBRztRQUNILEVBQUUsRUFBRTtRQUNKLEdBQUc7UUFDSCxFQUFFLEVBQUU7UUFDSixHQUFHO1FBQ0gsRUFBRSxFQUFFO1FBQ0osRUFBRSxFQUFFO1FBQ0osRUFBRSxFQUFFLENBQ0wsQ0FBQztBQUNKLENBQUMsRUFBQyJ9

/***/ }),

/***/ "tFCy":
/*!*****************************************************!*\
  !*** ./lib/search/createSearchPrefetchStateOnce.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createSearchPrefetchStateOnce; });
/* harmony import */ var _ms_sp_search_common_lib_getCleanPuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/sp-search-common/lib/getCleanPuid */ "0Oc1");

var state;
/**
 * Creates the search prefetch library state the first time it is called.
 * Returns the created state on next invocations.
 *
 * @alpha
 */
// tslint:disable-next-line:export-name
function createSearchPrefetchStateOnce(createdBy, puid) {
    if (state) {
        return state;
    }
    try {
        puid = Object(_ms_sp_search_common_lib_getCleanPuid__WEBPACK_IMPORTED_MODULE_0__["default"])(puid);
    }
    catch (_a) {
        puid = 'HostAppFailedToProvidePuid';
    }
    return state = {
        puid: puid || 'HostAppFailedToProvidePuid',
        cache: {
            createdBy: createdBy,
            createdAt: 0,
            participants: [],
            caches: {}
        }
    };
}


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vMVo":
/*!************************************************!*\
  !*** ./lib/search/BaseSearchBoxInitializer.js ***!
  \************************************************/
/*! exports provided: search, BaseSearchBoxInitializer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "search", function() { return search; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseSearchBoxInitializer", function() { return BaseSearchBoxInitializer; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! .. */ "mwqp");


function shouldSearchBoxBeVisible(appId) {
    // Global flight check for the search box in the header
    if (!___WEBPACK_IMPORTED_MODULE_1__["SuiteNavManagerConfiguration"].isSearchBoxInHeaderFlighted()) {
        return false;
    }
    switch (appId) {
        case '1f019ae1-2de1-4f44-b723-00a6ec1d7445':
            // sp-home app
            return true;
        case 'c1c115a8-896b-4a53-a73c-cde6b8ca00f8':
            // sp-search app
            return true;
        case '7497f5b1-726b-46d8-9798-6be6bbef75c5':
        // sp-system-pages app
        case 'b6917cb1-93a0-4b97-a84d-7cf49975d4ec':
            // sp-pages app, which has an extra flight check
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1240 /* SPPagesSuiteSearchBox */);
        case '9f012051-e030-4487-9eb7-3365d03be182':
            // sp-list-host
            return true;
        default:
            // To enable the search box in other apps, add their appId above.
            // Flight checks should live here so that we can know whether the
            // search box should be visible before we've even loaded the app.
            return false;
    }
}
function setSearchBoxVisibility(appId) {
    search().SetSearchBoxVisibility(shouldSearchBoxBeVisible(appId));
}
/** Gets the O365 shell. */
function shell() {
    // tslint:disable-next-line:no-string-literal
    return window['O365Shell'];
}
/**
 * Gets the O365 shell search shim.
 *
 * @alpha
 */
function search() {
    return shell().Search;
}
/**
 * Suite search box initializers should subclass this class.
 *
 * @alpha
 */
var BaseSearchBoxInitializer = /** @class */ (function () {
    function BaseSearchBoxInitializer() {
        this.disposeList = [];
        this.currentProps = {
            pathname: '',
            querySearchText: ''
        };
    }
    /**
     * Initializes the suite search box, and returns a function that, when called,
     * will dispose the search box, and hide/show it if the application being transitioned
     * into isn't/is enabled for the suite search box.
     */
    BaseSearchBoxInitializer.prototype.initialize = function (submitSearchHandler, asyncFeatures) {
        var _this = this;
        return this.suiteNavRendered().then(function () {
            setSearchBoxVisibility(_this.applicationId);
            _this.disposeList.push(manageSubmitSearchHandler(submitSearchHandler, asyncFeatures));
            if (asyncFeatures) {
                asyncFeatures.then(function (_a) {
                    var listenToRoute = _a.listenToRoute, getSearchRoute = _a.getSearchRoute;
                    var initialProps = getSearchRoute();
                    _this.onRouteInitialized(initialProps);
                    _this.currentProps = initialProps;
                    _this.disposeList.push(listenToRoute(function (props) {
                        _this.onRouteChanged(_this.currentProps, props);
                        _this.currentProps = props;
                    }));
                });
            }
            _this.onSuiteNavRendered();
            return function (nextApplicationId) {
                setSearchBoxVisibility(nextApplicationId);
                _this.disposeList.forEach(function (dispose) { return dispose(); });
            };
        });
    };
    BaseSearchBoxInitializer.prototype.onSearchBoxActivated = function (onSearchBoxActivated) {
        var token = search().OnSearchBoxActivated(onSearchBoxActivated);
        this.disposeList.push(function () { return search().RemoveOnSearchBoxActivated(token); });
    };
    return BaseSearchBoxInitializer;
}());

function manageSubmitSearchHandler(submitSearchHandler, asyncFeatures) {
    if (asyncFeatures) {
        asyncFeatures.then(function (_a) {
            var createSubmitSearchHandler = _a.createSubmitSearchHandler;
            return (submitSearchHandler = createSubmitSearchHandler(submitSearchHandler));
        });
    }
    var token = search().OnSubmitSearch(function (searchText, context) {
        /* tslint:disable:no-any */
        return submitSearchHandler(searchText, context);
    });
    return function () { return search().RemoveOnSubmitSearch(token); };
}


/***/ }),

/***/ "vlQI":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vlQI__;

/***/ }),

/***/ "wxtz":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_wxtz__;

/***/ }),

/***/ "y88i":
/*!********************************************!*\
  !*** external "@ms/odsp-utilities-bundle" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_y88i__;

/***/ }),

/***/ "y91V":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@ms/odsp-utilities/28.18.1/node_modules/@ms/odsp-utilities/lib/models/store/DataStoreCachingType.js ***!
  \*****************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var DataStoreCachingType;
(function (DataStoreCachingType) {
    DataStoreCachingType[DataStoreCachingType["none"] = 0] = "none";
    DataStoreCachingType[DataStoreCachingType["session"] = 1] = "session";
    DataStoreCachingType[DataStoreCachingType["local"] = 2] = "local";
    DataStoreCachingType[DataStoreCachingType["sharedMemory"] = 3] = "sharedMemory";
})(DataStoreCachingType || (DataStoreCachingType = {}));
exports.default = DataStoreCachingType;
//# sourceMappingURL=DataStoreCachingType.js.map

/***/ })

/******/ })});;
//# sourceMappingURL=sp-suite-nav.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("1c6c9123-7aac-41f3-a376-3caea41ed83f_1.10.0", ["@microsoft/load-themed-styles","@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-dynamic-data","@microsoft/sp-http","@microsoft/sp-lodash-subset","@microsoft/sp-page-context","@ms/sp-telemetry"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__, __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__) { return /******/ (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 = "./sp-loader.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_FmFyAWZ1md7Z1R+V8t2S2Q": {
      "errorLoadingDebugScriptHTTPS": "Error loading debug script. Ensure the server is running and the \"{0}\" parameter URL is correct.",
      "errorLoadingDebugScriptHTTP": "Error loading debug script. Ensure the server is running, the \"{0}\" parameter URL is correct, and loading unsafe scripts is allowed. Also consider using a development certificate and serving debug scripts over HTTPS.",
      "errorLoadingDebugScriptMalformed": "Error loading debug script. The debug URL ({0}) appears to be malformed.",
      "errorLoadingDebugScriptUnknown": "Unknown error loading a debug script.",
      "errorLoadingDebugLoaderTitle": "Error loading debug loader.",
      "errorLoadingDebugManifestTitle": "Error loading debug manifests.",
      "errorLoadingUnknownTitle": "Error loading debug scripts."
    },
    "_HyNcqqy05+791EWZRJ/Erg": {
      "listSeparator": ", ",
      "loadComponentError": "***Failed to load component \"{0}\" ({1}). Original error: {2}",
      "loadComponentDependencyError": "***Failed to load component dependency \"{0}\" from component \"{1}\" ({2}). Original error: {3}",
      "loadComponentDependencyFailoverPathError": "***Failed to load component dependency \"{0}\" with failover path \"{1}\" from component \"{2}\" ({3}). Original error: {4}",
      "loadPathDependencyError": "***Failed to load path dependency \"{0}\" from component \"{1}\" ({2}). Original error: {3}",
      "loadPathDependencyBlockedByAnotherDependencyError": "***Failed to load path dependency \"{0}\" from component \"{1}\" ({2}) due to another dependency that failed to load.",
      "loadEntryPointError": "***Failed to load entry point from component \"{0}\" ({1}). Original error: {2}",
      "loadComponentReturnsEmptyError": "***loadComponent() returned an empty object for component \"{0}\" ({1}).",
      "loadComponentReturnsDefaultEmptyError": "***loadComponent() returned an object with an empty default property for component \"{0}\" ({1}).",
      "moduleHasUndeclaredDependencyError": "***The entry point for component \"{0}\" ({1}) has a dependency on \"{2}\" that is not declared in the manifest.",
      "loadScriptWithStringError": "***loadScript function doesn't allow a string as 2nd parameter. Use ILoadScriptOptions instead.",
      "urlStatusLocalhostFileNotFoundError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The file was not found in the server. Make sure that you are running 'gulp serve'.",
      "urlStatusFileNotFoundError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The file was not found in the server.",
      "urlStatusForbiddenError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The access to the file is forbidden.",
      "urlStatusClientErrorError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was an error requesting the file.",
      "urlStatusServerErrorError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a problem in the server.",
      "urlStatusLocalhostNetworkErrorError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem. Make sure that you are running 'gulp serve' and you have run 'gulp trust-dev-cert'.",
      "urlStatusHttpsNetworkErrorError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem. This may be a problem with a HTTPS certificate. Make sure you have the right certificate.",
      "urlStatusNetworkErrorError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem.",
      "urlStatusUndefinedError": "***Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}) because of unknown problems.",
      "failedToCreateGlobalVariableError": "***Failed to create global variable \"{0}\" from script \"{1}\"",
      "dependencyLoadError": "***Failed to load module '{0}' because dependency {1} was not loaded",
      "missingPathDependencyError": "***Missing path dependency \"{0}\" from component \"{1}\" ({2}). Existing path dependencies: {3}"
    },
    "_fVUay/3ENa56/o3BfjRdrw": {
      "loadComponentMaxRetriesError": "***Attempted to load component \"{0}\" ({1}) {2} times without success.",
      "manifestNotFoundError": "***Manifest not found for component id \"{0}\" and version \"{1}\"."
    },
    "_RPELcTeq3ZByqi3N5dt18w": {
      "missingDeveloperToolsTabInitFunctionError": "Missing component or initializer function.",
      "closeDeveloperToolsAriaLabel": "Close developer tools."
    },
    "_ZZX3HYmO09A0dtXnoncSkA": {
      "tooManyComponentsError": "***Too many components found for id \"{0}\".",
      "deleteComponentLog": "***Deleting component \"{0}\" version \"{1}\" from the store.",
      "noComponentFoundError": "***No component found for id \"{0}\".",
      "manifestNotFoundByIdError": "***Manifest not found for component id \"{0}\".",
      "tooManyManifestsError": "***{0} manifests (versions {1}) found for component \"{2}\".",
      "tooManyCompatibleVersionsError": "***{0} compatible versions ({1}) found for component \"{2}\" version \"{3}\"."
    },
    "_F4HRA/FKfb0X6JapWo2vTw": {
      "loadComponentLog": "***Loading component \"{0}\" ({1}).",
      "loadComponentEndLog": "***Component \"{0}\" ({1}) loaded.",
      "loadComponentRetryLog": "***Loading component \"{0}\" ({1}). Attempt {2} of {3}.",
      "loadPathDependencyLog": "***Loading path dependency \"{0}\" from component \"{1}\" ({2})",
      "isUndefinedValidateError": "***The value for \"{0}\" must not be undefined"
    },
    "_KuTfBwDffam4eyPQEJupWw": {
      "ie9OrOlderNotSupportedError": "***This page does not support Internet Explorer releases older than version 10. Please update your web browser.",
      "firefox43OrOlderNotSupportedError": "***This page does not support Mozilla Firefox releases older than version 44. Please update your web browser.",
      "platformFailedToLoadError": "***Platform failed to load. Id: \"{0}\", name: \"{1}\"",
      "platformFailedToLoadWithMessageError": "***Platform failed to load. Id: \"{0}\", name: \"{1}\". Error: {2}",
      "applicationFailedToInitializeError": "***Error initializing application. Error: {0}",
      "resourceNotFoundError": "***Resource \"{0}\" not found in loader configuration of manifest for component \"{1}\" ({2}).",
      "noFailoverPathError": "***Cannot call resolveAddress() on a component with no failover path"
    },
    "_a4wKXyUGuAbOcWmuhzMXpg": {
      "systemConfigDisabledError": "***System.config() is not supported. Use a manifest to specify the configuration."
    },
    "_C14mR9Diz4DseFaa7aiq6A": {
      "browserNotSupportedError": "***This version of your browser is not supported. Please update your browser to the latest version.",
      "loaderUserFriendlyError": "Can't load the application on this page. Use the browser Back button to retry. If the problem persists, contact the administrator of the site and give them the information in Technical Details.",
      "invalidPreloadedDataError": "***Invalid preloaded data."
    },
    "_fwMQe6Xe08yEeCPNxngd+g": {
      "warningHeading": "Warning!",
      "warningLine1": "Use of this tool exposes you to potential security threats which can result in others gaining access to your personal Office 365 data (documents, emails, conversations and more). Make sure you trust the person or organization that asked you to access this tool before proceeding.",
      "warningLine2": "Learn more here: {0}"
    },
    "_mraBnnuq2J9WjrAcnw9QNA": {
      "debugManifestErrorDetail": "An error occured loading debug manifests.",
      "debugManifestErrorDismissButtonText": "Dismiss"
    },
    "_upo3vfLFBbnbzl2hKy2TwA": {
      "allowDebugManifestsTitle": "Allow debug scripts?",
      "allowDebugLoaderTitle": "Allow debug loader?",
      "allowDebugLoaderAndManifestsTitle": "Allow debug loader and debug scripts?",
      "debugManifestLoadingWarning": "WARNING: This page contains unsafe scripts that, if loaded, could potentially harm your computer. Do not proceed unless you trust the developer and understand the risks.",
      "debugManifestLoadingWarning2": "If you are unsure, click {0}.",
      "debugManifestLoadingConfirm": "Load debug scripts",
      "debugManifestLoadingCancel": "Don't load debug scripts",
      "debugManifestLoadingCalloutText": "If you don't know what to do, click here."
    },
    "_SxImp5ewsUToxeAHBkB+pw": {
      "developerToolsTabLoadingText": "Loading...",
      "developerToolsTabLoadingUnknownError": "Unknown error loading developer tools module."
    },
    "_gqinlPQb8HZprTeCpwNz2w": {
      "TabTitle": "Trace",
      "EmptyTraceData": "No traces loaded.",
      "ExportCSVButtonLabel": "Export CSV",
      "LevelHeaderLabel": "Level",
      "MessageHeaderLabel": "Message",
      "ScopeHeaderLabel": "Scope",
      "SourceHeaderLabel": "Source",
      "TimestampHeaderLabel": "Timestamp",
      "TimestampFormat": "{0}/{1}/{2} {3}:{4}:{5}.{6}"
    },
    "_g7G0QHJ5bQYlxe+lk+DcxA": {
      "TabTitle": "Performance",
      "ErrorAccessingPerfDataErrorMessage": "Unable to retrieve performance data: object is null or undefined.",
      "ErrorParsingPercievedLatencyErrorMessage": "An error was caught when parsing the percieved latency data.",
      "ErrorParsingApiDataErrorMessage": "An error was caught when parsing the API data.",
      "UnknownPerformanceDataErrorMessage": "An unknown error has occured: {0}",
      "ServerResponseLabel": "Server Response",
      "ApplicationInitializationLabel": "Application Initialization",
      "ScriptFetchEvalLabel": "Script fetch and evaluation",
      "SpLoaderStartLabel": "SPFx initialization",
      "PageRenderLabel": "Page Render",
      "RedirectResponseLabel": "Redirect Response",
      "AppLoadLabel": "Application Load",
      "RenderWebPartsLabel": "Web Parts Render",
      "TotalRenderTimeLabel": "Total",
      "GeneralErrorMessage": "Sorry, something went wrong while retrieving the performance data.",
      "ErrorMessagePrefix": "Error Message: {0}",
      "PerformanceDataHint": "Note: After adding or removing a web part, refresh the page to see updated performance data.",
      "ModulesLoadedLegendLabel": "Modules Loaded",
      "InitializationLegendLabel": "Initialization",
      "RenderTimeLegendLabel": "Render Time",
      "InitializationTimeLabel": "Initialization time",
      "ModuleLoadingTimeLabel": "Module loading time",
      "ModuleLazyLoadingDelayLabel": "Module loading delayed",
      "DataFetchTimeLabel": "Data fetch time",
      "DataFetchLegendLabel": "Data Fetch",
      "ItemsColumnHeader": "Items",
      "DurationColumnHeader": "Duration",
      "MillisecondsUnitLabel": "{0} ms",
      "NAPlaceholder": "N/A"
    },
    "_sovI4qDAUPMnD4jg3Vsyfg": {
      "tabTitle": "Manifests",
      "noManifestSelected": "No manifest selected"
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-loader.js":
/*!**********************!*\
  !*** ./sp-loader.js ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;var require;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @ms/sp-telemetry */ "@ms/sp-telemetry"),__webpack_require__(/*! @microsoft/sp-dynamic-data */ "@microsoft/sp-dynamic-data"),__webpack_require__(/*! @microsoft/sp-lodash-subset */ "@microsoft/sp-lodash-subset"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-page-context */ "@microsoft/sp-page-context"),__webpack_require__(/*! @microsoft/load-themed-styles */ "@microsoft/load-themed-styles"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! @microsoft/sp-http */ "@microsoft/sp-http"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE__2q6Q__, __WEBPACK_EXTERNAL_MODULE__84nK__, __WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_X_PM__, __WEBPACK_EXTERNAL_MODULE_jOlS__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vlQI__, __WEBPACK_EXTERNAL_MODULE_vpy3__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-loader": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"systemjs-component-loader":"systemjs-component-loader","vendors~debug-prompt-components~developer-tools":"vendors~debug-prompt-components~developer-tools","vendors~debug-prompt-components":"vendors~debug-prompt-components","debug-prompt-components":"debug-prompt-components","vendors~developer-tools":"vendors~developer-tools","developer-tools":"developer-tools"}[chunkId]||chunkId) + "_" + {"systemjs-component-loader":"03ecd5c1f800fbfe731a","vendors~debug-prompt-components~developer-tools":"5b09146ad63230150cad","vendors~debug-prompt-components":"870a341b48681505790f","debug-prompt-components":"872f27c3b60fc5670fdf","vendors~developer-tools":"7e30c5fbf39eea6bd7bc","developer-tools":"e6497e4ab5bf23c6203a"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonp_1c6c9123_7aac_41f3_a376_3caea41ed83f_1_10_0"] = window["webpackJsonp_1c6c9123_7aac_41f3_a376_3caea41ed83f_1_10_0"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-loader(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "++S4":
/*!*****************************************************!*\
  !*** ./lib/requirejs/SPRequireJsComponentLoader.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _loader_BaseComponentLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../loader/BaseComponentLoader */ "Uk6p");
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");
/* harmony import */ var _error_SPLoaderError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/SPLoaderError */ "BBmw");
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _utilities_LoadComponentExecutor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/LoadComponentExecutor */ "td2X");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _utilities_ComponentOverrider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/ComponentOverrider */ "A8iV");
/* harmony import */ var _loader_loadComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../loader/loadComponent */ "aghm");
/* harmony import */ var _RequireJsLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./RequireJsLoader */ "TUD0");
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
// Copyright (c) Microsoft. All rights reserved.











/**
 * The component loader for SPFx.
 * This implementation uses RequireJS as the internal module loader.
 *
 * @alpha
 */
var SPRequireJsComponentLoader = /** @class */ (function (_super) {
    __extends(SPRequireJsComponentLoader, _super);
    // Initialization
    /**
     * @internal
     */
    function SPRequireJsComponentLoader(serviceScope, systemJsFallbackLoader) {
        var _this = _super.call(this, serviceScope) || this;
        _this._requireJsLoader = serviceScope.consume(_RequireJsLoader__WEBPACK_IMPORTED_MODULE_10__["default"].serviceKey);
        _this._systemJsFallbackLoader = systemJsFallbackLoader;
        _this._loadComponentExecutor = new _utilities_LoadComponentExecutor__WEBPACK_IMPORTED_MODULE_6__["default"](_this._loadComponentWithExecutor.bind(_this));
        _this._loadComponentExecutor.setAlternativeExecutor(systemJsFallbackLoader.executor);
        systemJsFallbackLoader.executor.setAlternativeExecutor(_this._loadComponentExecutor);
        return _this;
    }
    // Public API
    SPRequireJsComponentLoader.prototype.loadScript = function (url, options) {
        var _a;
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(url, 'url');
        }
        catch (error) {
            return Promise.reject(error);
        }
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__["loadScriptQosScenarioName"]);
        if (options === undefined) {
            options = {};
        }
        if (typeof options === 'string') {
            var error = _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadScriptWithStringError();
            qosMonitor.writeExpectedFailure('OptionsAsString', error);
            return Promise.reject(error);
        }
        if (options.globalExportsName) {
            this._requireJsLoader.requireConfig({
                shim: (_a = {},
                    _a[url.replace(/\.js$/, '')] = {
                        exports: options.globalExportsName
                    },
                    _a)
            });
        }
        return this._requireJsLoader.requireLoad(url, options.globalExportsName)
            .then(function (module) {
            qosMonitor.writeSuccess();
            return module;
        })
            .catch(function (e) {
            qosMonitor.writeUnexpectedFailure('RequireLoad', e);
            throw e;
        });
    };
    SPRequireJsComponentLoader.prototype.loadComponent = function (manifest) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__["loadComponentQosScenarioName"]);
        var qosExtraData = this._buildQosExtraData(manifest);
        return this._loadComponentExecutor.loadComponent(manifest)
            .then(function (componentLoaded) {
            var component = componentLoaded.component, requireJsError = componentLoaded.requireJsError;
            if (requireJsError) {
                qosExtraData.loader = 'systemjs-fallback';
            }
            qosMonitor.writeSuccess(qosExtraData);
            return component;
        })
            .catch(function (requireJsError) {
            return _this._handleLoadComponentError(requireJsError, manifest, qosMonitor, qosExtraData);
        });
    };
    // Internal/private API
    SPRequireJsComponentLoader.prototype._overrideComponent = function (componentId, componentModule) {
        _utilities_ComponentOverrider__WEBPACK_IMPORTED_MODULE_8__["default"].overrideComponent(componentId, componentModule, this._serviceScope, _RequireJsLoader__WEBPACK_IMPORTED_MODULE_10__["default"].serviceKey);
    };
    SPRequireJsComponentLoader.prototype._unloadComponent = function (manifest) {
        if (_stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.tryGetComponent(manifest.id, manifest.version)) {
            _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.deleteComponent(manifest.id, manifest.version);
            this._requireJsLoader.requireDelete(manifest);
        }
    };
    /**
     * This functions tries to load the component with RequireJS, and if the killswitch is not enabled and the load fails,
     * will set up the component to be loaded with SystemJS.
     */
    SPRequireJsComponentLoader.prototype._loadComponentWithExecutor = function (manifest) {
        var _this = this;
        return Object(_loader_loadComponent__WEBPACK_IMPORTED_MODULE_9__["default"])(manifest, this._requireJsLoader)
            .then(function (component) {
            return {
                component: component
            };
        })
            .catch(function (requireJsError) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__["loadComponentLogSource"], "RequireJS failed to load component \"" + manifest.id + "\". Trying again with SystemJS.");
            // Remove the component from the store to ensure that SystemJS doesn't assume it's already loaded
            _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.deleteComponent(manifest.id, manifest.version);
            return _this._systemJsFallbackLoader.loadComponent(manifest)
                .then(function (component) {
                return {
                    component: component,
                    requireJsError: requireJsError
                };
            })
                .catch(function () {
                // The systemjs error was already logged by the systemjs loader
                throw requireJsError;
            });
        });
    };
    SPRequireJsComponentLoader.prototype._buildQosExtraData = function (manifest) {
        return {
            manifestId: manifest.id,
            version: manifest.version,
            alias: manifest.alias,
            isInternal: manifest.isInternal,
            isDebug: manifest._isDebug,
            loader: 'requirejs'
        };
    };
    SPRequireJsComponentLoader.prototype._handleLoadComponentError = function (error, manifest, qosMonitor, qosExtraData) {
        if (error instanceof _error_SPLoaderError__WEBPACK_IMPORTED_MODULE_4__["default"] && error.isExpected) {
            qosMonitor.writeExpectedFailure(undefined, error, qosExtraData);
        }
        else {
            qosMonitor.writeUnexpectedFailure(undefined, error, qosExtraData);
        }
        // If it fails to load, the caller can then call loadComponent() again and not hit the cache
        _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.deleteComponent(manifest.id, manifest.version);
        throw error;
    };
    return SPRequireJsComponentLoader;
}(_loader_BaseComponentLoader__WEBPACK_IMPORTED_MODULE_2__["BaseComponentLoader"]));
/* harmony default export */ __webpack_exports__["default"] = (SPRequireJsComponentLoader);


/***/ }),

/***/ "2clK":
/*!***************************************************!*\
  !*** ./lib/DeveloperTools/DeveloperToolsProxy.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file DeveloperToolsProxy.ts
 */
/**
 * Developer tools.
 * Allows to register tabs in the developer tools.
 *
 * @internal
 */
var DeveloperToolsProxy = /** @class */ (function () {
    function DeveloperToolsProxy() {
    }
    /**
     * Initializes the developer tools with an implementation.
     * Must be called once before it can be used.
     */
    DeveloperToolsProxy.initialize = function (developerToolsLoader) {
        DeveloperToolsProxy._instance = developerToolsLoader;
        DeveloperToolsProxy._instance.initialize();
    };
    /**
     * {@inheritDoc  IDeveloperTools.registerDeveloperToolsTab}
     */
    DeveloperToolsProxy.registerDeveloperToolsTab = function (developerToolsTab) {
        DeveloperToolsProxy._instance.registerDeveloperToolsTab(developerToolsTab);
    };
    return DeveloperToolsProxy;
}());
/* harmony default export */ __webpack_exports__["default"] = (DeveloperToolsProxy);


/***/ }),

/***/ "2q6Q":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__2q6Q__;

/***/ }),

/***/ "4mHd":
/*!*********************************************!*\
  !*** ./lib/utilities/telemetryConstants.js ***!
  \*********************************************/
/*! exports provided: loadScriptQosScenarioName, loadComponentQosScenarioName, loadComponentImplQosScenarioName, loadPathDependencyQosScenarioName, emptyComponentErrorTagName, configureSystemJsErrorTagName, loadComponentDependenciesErrorTagName, loadPathDependenciesErrorTagName, spStarterLogSource, startApplicationLogSource, loadComponentLogSource, loadScriptLogSource, resolveAddressLogSource, componentStoreLogSource, manifestStoreLogSource */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadScriptQosScenarioName", function() { return loadScriptQosScenarioName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadComponentQosScenarioName", function() { return loadComponentQosScenarioName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadComponentImplQosScenarioName", function() { return loadComponentImplQosScenarioName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadPathDependencyQosScenarioName", function() { return loadPathDependencyQosScenarioName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emptyComponentErrorTagName", function() { return emptyComponentErrorTagName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "configureSystemJsErrorTagName", function() { return configureSystemJsErrorTagName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadComponentDependenciesErrorTagName", function() { return loadComponentDependenciesErrorTagName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadPathDependenciesErrorTagName", function() { return loadPathDependenciesErrorTagName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spStarterLogSource", function() { return spStarterLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startApplicationLogSource", function() { return startApplicationLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadComponentLogSource", function() { return loadComponentLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadScriptLogSource", function() { return loadScriptLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveAddressLogSource", function() { return resolveAddressLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "componentStoreLogSource", function() { return componentStoreLogSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "manifestStoreLogSource", function() { return manifestStoreLogSource; });
// ISPComponentLoader.loadComponent
var loadScriptQosScenarioName = 'SPComponentLoader.loadScript';
var loadComponentQosScenarioName = 'SPComponentLoader.loadComponent';
var loadComponentImplQosScenarioName = 'SPComponentLoader._loadComponentImpl';
var loadPathDependencyQosScenarioName = 'SPComponentLoader.loadPathDependency';
var emptyComponentErrorTagName = 'EmptyComponent';
var configureSystemJsErrorTagName = 'ConfigureSystemJs';
var loadComponentDependenciesErrorTagName = 'LoadComponentDependencies';
var loadPathDependenciesErrorTagName = 'LoadPathDependencies';
// Log sources
var spStarterLogSource = { id: 'SPStarter.start' };
var startApplicationLogSource = { id: 'SPComponentLoader.startApplication' };
var loadComponentLogSource = { id: 'SPComponentLoader.loadComponent' };
var loadScriptLogSource = { id: 'SPComponentLoader.loadScript' };
var resolveAddressLogSource = { id: 'resolveAddress' };
var componentStoreLogSource = { id: 'ComponentStore' };
var manifestStoreLogSource = { id: 'ManifestStore' };


/***/ }),

/***/ "5TKm":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/raw-loader/0.5.1/node_modules/raw-loader!./blobs/requirejs/2.1.20/require.min.js ***!
  \**********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/*\r\n RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.\r\n Available via the MIT or new BSD license.\r\n see: http://github.com/jrburke/requirejs for details\r\n*/\r\nvar requirejs,require,define;\r\n(function(ba){function G(b){return\"[object Function]\"===K.call(b)}function H(b){return\"[object Array]\"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function n(b,c){return t(b,c)&&b[c]}function A(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&A(c,function(c,i){if(d||!t(b,i))e&&\"object\"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof\r\nRegExp)?(b[i]||(b[i]={}),U(b[i],c,d,e)):b[i]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split(\".\"),function(b){c=c[b]});return c}function B(b,c,d,e){c=Error(c+\"\\nhttp://requirejs.org/docs/errors.html#\"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,j,b){var f,l,c,d,h,e,g,i,j=j&&j.split(\"/\"),p=k.map,m=p&&p[\"*\"];if(a){a=a.split(\"/\");l=a.length-1;k.nodeIdCompat&&\r\nQ.test(a[l])&&(a[l]=a[l].replace(Q,\"\"));\".\"===a[0].charAt(0)&&j&&(l=j.slice(0,j.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],\".\"===d)l.splice(c,1),c-=1;else if(\"..\"===d&&!(0===c||1===c&&\"..\"===l[2]||\"..\"===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join(\"/\")}if(b&&p&&(j||m)){l=a.split(\"/\");c=l.length;a:for(;0<c;c-=1){h=l.slice(0,c).join(\"/\");if(j)for(d=j.length;0<d;d-=1)if(b=n(p,j.slice(0,d).join(\"/\")))if(b=n(b,h)){f=b;e=c;break a}!g&&(m&&n(m,h))&&(g=n(m,h),i=c)}!f&&g&&(f=g,e=i);f&&(l.splice(0,\r\ne,f),a=l.join(\"/\"))}return(f=n(k.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName(\"script\"),function(j){if(j.getAttribute(\"data-requiremodule\")===a&&j.getAttribute(\"data-requirecontext\")===h.contextName)return j.parentNode.removeChild(j),!0})}function p(a){var j=n(k.paths,a);if(j&&H(j)&&1<j.length)return j.shift(),h.require.undef(a),h.makeRequire(null,{skipMap:!0})([a]),!0}function g(a){var j,c=a?a.indexOf(\"!\"):-1;-1<c&&(j=a.substring(0,c),a=a.substring(c+1,a.length));return[j,a]}function i(a,\r\nj,b,f){var l,d,e=null,i=j?j.name:null,k=a,p=!0,m=\"\";a||(p=!1,a=\"_@r\"+(K+=1));a=g(a);e=a[0];a=a[1];e&&(e=c(e,i,f),d=n(q,e));a&&(e?m=d&&d.normalize?d.normalize(a,function(a){return c(a,i,f)}):-1===a.indexOf(\"!\")?c(a,i,f):a:(m=c(a,i,f),a=g(m),e=a[0],m=a[1],b=!0,l=h.nameToUrl(m)));b=e&&!d&&!b?\"_unnormalized\"+(O+=1):\"\";return{prefix:e,name:m,parentMap:j,unnormalized:!!b,url:l,originalName:k,isDefine:p,id:(e?e+\"!\"+m:m)+b}}function r(a){var j=a.id,b=n(m,j);b||(b=m[j]=new h.Module(a));return b}function s(a,\r\nj,b){var f=a.id,c=n(m,f);if(t(q,f)&&(!c||c.defineEmitComplete))\"defined\"===j&&b(q[f]);else if(c=r(a),c.error&&\"error\"===j)b(c.error);else c.on(j,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=n(m,b))b.error=a,b.events.error&&(f=!0,b.emit(\"error\",a))}),!f)e.onError(a)}function x(){R.length&&(v(R,function(a){var b=a[0];\"string\"===typeof b&&(h.defQueueMap[b]=!0);C.push(a)}),R=[])}function y(a){delete m[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit(\"error\",\r\na.error):(b[f]=!0,v(a.depMaps,function(f,d){var e=f.id,h=n(m,e);h&&(!a.depMatched[d]&&!c[e])&&(n(b,e)?(a.defineDep(d,q[e]),a.check()):F(h,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*k.waitSeconds)&&h.startTime+a<(new Date).getTime(),f=[],l=[],e=!1,i=!0;if(!W){W=!0;A(V,function(a){var h=a.map,g=h.id;if(a.enabled&&(h.isDefine||l.push(a),!a.error))if(!a.inited&&c)p(g)?e=b=!0:(f.push(g),d(g));else if(!a.inited&&(a.fetched&&h.isDefine)&&(e=!0,!h.prefix))return i=!1});if(c&&f.length)return a=B(\"timeout\",\r\n\"Load timeout for modules: \"+f,null,f),a.contextName=h.contextName,w(a);i&&v(l,function(a){F(a,{},{})});if((!c||b)&&e)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(q,a[0])||r(i(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=h.onScriptLoad;a.detachEvent&&!Y?a.detachEvent(\"onreadystatechange\",b):a.removeEventListener(\"load\",b,!1);b=h.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener(\"error\",b,!1);return{node:a,id:a&&a.getAttribute(\"data-requiremodule\")}}\r\nfunction J(){var a;for(x();C.length;){a=C.shift();if(null===a[0])return w(B(\"mismatch\",\"Mismatched anonymous define() module: \"+a[a.length-1]));E(a)}h.defQueueMap={}}var W,Z,h,L,X,k={waitSeconds:7,baseUrl:\"./\",paths:{},bundles:{},pkgs:{},shim:{},config:{}},m={},V={},$={},C=[],q={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=h.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?q[a.map.id]=a.exports:a.exports=q[a.map.id]={}},\r\nmodule:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return n(k.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=n($,a.id)||{};this.map=a;this.shim=n(k.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on(\"error\",c);else this.events.error&&(c=u(this,function(a){this.emit(\"error\",a)}));\r\nthis.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;h.startTime=(new Date).getTime();var a=this.map;if(this.shim)h.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?\r\nthis.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,h.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit(\"error\",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||e.onError!==ca)try{f=h.execCb(c,l,b,f)}catch(d){a=d}else f=h.execCb(c,l,b,f);this.map.isDefine&&\r\nvoid 0===f&&((b=this.module)?f=b.exports:this.usingExports&&(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?\"define\":\"require\",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(q[c]=f,e.onResourceLoad))e.onResourceLoad(h,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit(\"defined\",this.exports),this.defineEmitComplete=\r\n!0)}}else t(h.defQueueMap,c)||this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=i(a.prefix);this.depMaps.push(d);s(d,\"defined\",u(this,function(f){var l,d;d=n(aa,this.map.id);var g=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,p=h.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(g=f.normalize(g,function(a){return c(a,P,!0)})||\"\"),f=i(a.prefix+\"!\"+g,this.map.parentMap),s(f,\"defined\",u(this,function(a){this.init([],function(){return a},\r\nnull,{enabled:!0,ignore:!0})})),d=n(m,f.id)){this.depMaps.push(f);if(this.events.error)d.on(\"error\",u(this,function(a){this.emit(\"error\",a)}));d.enable()}}else d?(this.map.url=h.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];A(m,function(a){0===a.map.id.indexOf(b+\"_unnormalized\")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,g=i(d),P=M;c&&(f=c);P&&\r\n(M=!1);r(g);t(k.config,b)&&(k.config[d]=k.config[b]);try{e.exec(f)}catch(m){return w(B(\"fromtexteval\",\"fromText eval for \"+b+\" failed: \"+m,m,[b]))}P&&(M=!0);this.depMaps.push(g);h.completeLoad(d);p([d],l)}),f.load(a.name,p,l,k))}));h.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if(\"string\"===typeof a){a=i(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=\r\nn(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,\"defined\",u(this,function(a){this.undefed||(this.defineDep(b,a),this.check())}));this.errback?s(a,\"error\",u(this,this.errback)):this.events.error&&s(a,\"error\",u(this,function(a){this.emit(\"error\",a)}))}c=a.id;f=m[c];!t(L,c)&&(f&&!f.enabled)&&h.enable(a,this)}));A(this.pluginMaps,u(this,function(a){var b=n(m,a.id);b&&!b.enabled&&h.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=\r\n[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});\"error\"===a&&delete this.events[a]}};h={config:k,contextName:b,registry:m,defined:q,urlFetched:S,defQueue:C,defQueueMap:{},Module:Z,makeModuleMap:i,nextTick:e.nextTick,onError:w,configure:function(a){a.baseUrl&&\"/\"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+=\"/\");var b=k.shim,c={paths:!0,bundles:!0,config:!0,map:!0};A(a,function(a,b){c[b]?(k[b]||(k[b]={}),U(k[b],a,!0,!0)):k[b]=a});a.bundles&&A(a.bundles,function(a,b){v(a,\r\nfunction(a){a!==b&&(aa[a]=b)})});a.shim&&(A(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=h.makeShimExports(a);b[c]=a}),k.shim=b);a.packages&&v(a.packages,function(a){var b,a=\"string\"===typeof a?{name:a}:a;b=a.name;a.location&&(k.paths[b]=a.location);k.pkgs[b]=a.name+\"/\"+(a.main||\"main\").replace(ha,\"\").replace(Q,\"\")});A(m,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=i(b,null,!0))});if(a.deps||a.callback)h.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;\r\na.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,j){function g(c,d,p){var k,n;j.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if(\"string\"===typeof c){if(G(d))return w(B(\"requireargs\",\"Invalid require call\"),p);if(a&&t(L,c))return L[c](m[a.id]);if(e.get)return e.get(h,c,a,g);k=i(c,a,!1,!0);k=k.id;return!t(q,k)?w(B(\"notloaded\",'Module name \"'+k+'\" has not been loaded yet for context: '+b+(a?\"\":\". Use require([])\"))):q[k]}J();h.nextTick(function(){J();\r\nn=r(i(null,a));n.skipMap=j.skipMap;n.init(c,d,p,{enabled:!0});D()});return g}j=j||{};U(g,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf(\".\"),j=b.split(\"/\")[0];if(-1!==e&&(!(\".\"===j||\"..\"===j)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return h.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(q,i(b,a,!1,!0).id)},specified:function(b){b=i(b,a,!1,!0).id;return t(q,b)||t(m,b)}});a||(g.undef=function(b){x();var c=i(b,a,!0),e=n(m,b);e.undefed=!0;d(b);delete q[b];delete S[c.url];\r\ndelete $[b];T(C,function(a,c){a[0]===b&&C.splice(c,1)});delete h.defQueueMap[b];e&&(e.events.defined&&($[b]=e.events),y(b))});return g},enable:function(a){n(m,a.id)&&r(a).enable()},completeLoad:function(a){var b,c,d=n(k.shim,a)||{},e=d.exports;for(x();C.length;){c=C.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}h.defQueueMap={};c=n(m,a);if(!b&&!t(q,a)&&c&&!c.inited){if(k.enforceDefine&&(!e||!da(e)))return p(a)?void 0:w(B(\"nodefine\",\"No define call for \"+a,null,[a]));E([a,\r\nd.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,g,i;(d=n(k.pkgs,a))&&(a=d);if(d=n(aa,a))return h.nameToUrl(d,b,c);if(e.jsExtRegExp.test(a))d=a+(b||\"\");else{d=k.paths;a=a.split(\"/\");for(g=a.length;0<g;g-=1)if(i=a.slice(0,g).join(\"/\"),i=n(d,i)){H(i)&&(i=i[0]);a.splice(0,g,i);break}d=a.join(\"/\");d+=b||(/^data\\:|\\?/.test(d)||c?\"\":\".js\");d=(\"/\"===d.charAt(0)||d.match(/^[\\w\\+\\.\\-]+:/)?\"\":k.baseUrl)+d}return k.urlArgs?d+((-1===d.indexOf(\"?\")?\"?\":\"&\")+k.urlArgs):d},load:function(a,b){e.load(h,\r\na,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if(\"load\"===a.type||ia.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),h.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!p(b.id))return w(B(\"scripterror\",\"Script error for: \"+b.id,a,[b.id]))}};h.require=h.makeRequire();return h}var e,x,y,D,I,E,N,J,r,O,ja=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,ka=/[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,Q=/\\.js$/,ha=/^\\.\\//;x=Object.prototype;var K=\r\nx.toString,fa=x.hasOwnProperty,z=!!(\"undefined\"!==typeof window&&\"undefined\"!==typeof navigator&&window.document),ea=!z&&\"undefined\"!==typeof importScripts,ia=z&&\"PLAYSTATION 3\"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y=\"undefined\"!==typeof opera&&\"[object Opera]\"===opera.toString(),F={},s={},R=[],M=!1;if(\"undefined\"===typeof define){if(\"undefined\"!==typeof requirejs){if(G(requirejs))return;s=requirejs;requirejs=void 0}\"undefined\"!==typeof require&&!G(require)&&(s=require,require=\r\nvoid 0);e=requirejs=function(b,c,d,p){var g,i=\"_\";!H(b)&&\"string\"!==typeof b&&(g=b,H(c)?(b=c,c=d,d=p):b=[]);g&&g.context&&(i=g.context);(p=n(F,i))||(p=F[i]=e.s.newContext(i));g&&p.configure(g);return p.require(b,c,d)};e.config=function(b){return e(b)};e.nextTick=\"undefined\"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=e);e.version=\"2.1.20\";e.jsExtRegExp=/^\\/|:|\\?|\\.js$/;e.isBrowser=z;x=e.s={contexts:F,newContext:ga};e({});v([\"toUrl\",\"undef\",\"defined\",\"specified\"],\r\nfunction(b){e[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName(\"head\")[0],D=document.getElementsByTagName(\"base\")[0]))y=x.head=D.parentNode;e.onError=ca;e.createNode=function(b){var c=b.xhtml?document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"html:script\"):document.createElement(\"script\");c.type=b.scriptType||\"text/javascript\";c.charset=\"utf-8\";c.async=!0;return c};e.load=function(b,c,d){var p=b&&b.config||{},g;if(z){g=e.createNode(p,\r\nc,d);if(p.onNodeCreated)p.onNodeCreated(g,p,c,d);g.setAttribute(\"data-requirecontext\",b.contextName);g.setAttribute(\"data-requiremodule\",c);g.attachEvent&&!(g.attachEvent.toString&&0>g.attachEvent.toString().indexOf(\"[native code\"))&&!Y?(M=!0,g.attachEvent(\"onreadystatechange\",b.onScriptLoad)):(g.addEventListener(\"load\",b.onScriptLoad,!1),g.addEventListener(\"error\",b.onScriptError,!1));g.src=d;J=g;D?y.insertBefore(g,D):y.appendChild(g);J=null;return g}if(ea)try{importScripts(d),b.completeLoad(c)}catch(i){b.onError(B(\"importscripts\",\r\n\"importScripts failed for \"+c+\" at \"+d,i,[c]))}};z&&!s.skipDataMain&&T(document.getElementsByTagName(\"script\"),function(b){y||(y=b.parentNode);if(I=b.getAttribute(\"data-main\"))return r=I,s.baseUrl||(E=r.split(\"/\"),r=E.pop(),O=E.length?E.join(\"/\")+\"/\":\"./\",s.baseUrl=O),r=r.replace(Q,\"\"),e.jsExtRegExp.test(r)&&(r=I),s.deps=s.deps?s.deps.concat(r):[r],!0});define=function(b,c,d){var e,g;\"string\"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ja,\"\").replace(ka,\r\nfunction(b,d){c.push(d)}),c=(1===d.length?[\"require\"]:[\"require\",\"exports\",\"module\"]).concat(c)));if(M){if(!(e=J))N&&\"interactive\"===N.readyState||T(document.getElementsByTagName(\"script\"),function(b){if(\"interactive\"===b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute(\"data-requiremodule\")),g=F[e.getAttribute(\"data-requirecontext\")])}g?(g.defQueue.push([b,c,d]),g.defQueueMap[b]=!0):R.push([b,c,d])};define.amd={jQuery:!0};e.exec=function(b){return eval(b)};e(s)}})(this);\r\n"

/***/ }),

/***/ "84nK":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__84nK__;

/***/ }),

/***/ "8N74":
/*!********************************!*\
  !*** ./lib/loc/Common.resx.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_fVUay/3ENa56/o3BfjRdrw';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "A8iV":
/*!*********************************************!*\
  !*** ./lib/utilities/ComponentOverrider.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _componentConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./componentConstants */ "kd3Z");




var ComponentOverrider = /** @class */ (function () {
    function ComponentOverrider() {
    }
    /**
     * Given a component id and a component module, it sets the component in the loader, therefore being
     * available without the need of loading it separately.
     * Should only be used when initializing the loader.
     *
     * @param componentId - Id of the component to override. There should be only one version of the component.
     * @param componentModule - Component module.
     */
    ComponentOverrider.overrideComponent = function (componentId, componentModule, serviceScope, moduleLoaderServiceKey) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(componentId, 'componentId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(componentModule, 'componentModule');
        // Needed for React16 rollout. Should be removed with version aware assembly manifests.
        var version = ComponentOverrider.getReactVersionIfNecessary(componentId);
        var manifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.tryGetManifest(componentId, version);
        // VSO bug 295355 makes it possible that manifest for odspUtilitiesBundle may not exist.
        if (!manifest) {
            return;
        }
        serviceScope.consume(moduleLoaderServiceKey).ensure(manifest, componentModule);
        _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_1__["default"].instance.storeLoadedComponent(manifest.id, manifest.version, componentModule);
    };
    /**
     * This is necessary because assemblies don't advertise the component version, and it may be the case where the page
     * requires both React 15 and React 16 manifests, but assemblies never have React 15 anymore.  When assemblies have
     * a deeper understanding of the versions that are included in them, this can be removed.
     */
    ComponentOverrider.getReactVersionIfNecessary = function (componentId) {
        if (componentId === _componentConstants__WEBPACK_IMPORTED_MODULE_3__["reactComponentId"] || componentId === _componentConstants__WEBPACK_IMPORTED_MODULE_3__["reactDomComponentId"]) {
            return _componentConstants__WEBPACK_IMPORTED_MODULE_3__["react16Version"];
        }
        else {
            return undefined;
        }
    };
    return ComponentOverrider;
}());
/* harmony default export */ __webpack_exports__["default"] = (ComponentOverrider);


/***/ }),

/***/ "ASbA":
/*!****************************************!*\
  !*** ./lib/utilities/isCorsEnabled.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isCorsEnabled; });
// https://spo*.akamaihd.net/
var corsMatch = /^https:\/\/spo.*?\.akamaihd\.net\/?[^?]/;
/**
 * Given a URL, determines if that URL resource is served with the
 * Access-Control-Allow-Origin: * CORS header.
 */
function isCorsEnabled(src) {
    return !!src && src.search(corsMatch) === 0;
}


/***/ }),

/***/ "AtZb":
/*!*************************************!*\
  !*** ./lib/debug/showDebugError.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return showDebugError; });
/* harmony import */ var _ensureDebugComponents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ensureDebugComponents */ "X2Mq");

function showDebugError(innerError, errorText, title) {
    return Object(_ensureDebugComponents__WEBPACK_IMPORTED_MODULE_0__["default"])().then(function (debugComponents) {
        debugComponents.showError(innerError, errorText, title);
    });
}


/***/ }),

/***/ "AvvH":
/*!*********************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@microsoft/loader-raw-script/1.2.182/node_modules/@microsoft/loader-raw-script/lib!./blobs/systemjs/0.19.25/dist/system.spfx.js ***!
  \*********************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function (global) {
  eval('/*\r\n * SystemJS v0.19.25\r\n */\r\n!function(){function e(){!function(e){function t(e,n){if("string"!=typeof e)throw new TypeError("URL must be a string");var r=String(e).replace(/^\\s+|\\s+$/g,"").match(/^([^:\\/?#]+:)?(?:\\/\\/(?:([^:@\\/?#]*)(?::([^:@\\/?#]*))?@)?(([^:\\/?#]*)(?::(\\d*))?))?([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/);if(!r)throw new RangeError("Invalid URL format");var a=r[1]||"",o=r[2]||"",s=r[3]||"",i=r[4]||"",l=r[5]||"",u=r[6]||"",d=r[7]||"",c=r[8]||"",f=r[9]||"";if(void 0!==n){var m=n instanceof t?n:new t(n),p=!a&&!i&&!o;!p||d||c||(c=m.search),p&&"/"!==d[0]&&(d=d?(!m.host&&!m.username||m.pathname?"":"/")+m.pathname.slice(0,m.pathname.lastIndexOf("/")+1)+d:m.pathname);var h=[];d.replace(/^(\\.\\.?(\\/|$))+/,"").replace(/\\/(\\.(\\/|$))+/g,"/").replace(/\\/\\.\\.$/,"/../").replace(/\\/?[^\\/]*/g,function(e){"/.."===e?h.pop():h.push(e)}),d=h.join("").replace(/^\\//,"/"===d[0]?"/":""),p&&(u=m.port,l=m.hostname,i=m.host,s=m.password,o=m.username),a||(a=m.protocol)}"file:"==a&&(d=d.replace(/\\\\/g,"/")),this.origin=i?a+(""!==a||""!==i?"//":"")+i:"",this.href=a+(a&&i||"file:"==a?"//":"")+(""!==o?o+(""!==s?":"+s:"")+"@":"")+i+d+c+f,this.protocol=a,this.username=o,this.password=s,this.host=i,this.hostname=l,this.port=u,this.pathname=d,this.search=c,this.hash=f}e.URLPolyfill=t}("undefined"!=typeof self?self:global),function(e){function t(e,t){return e instanceof Error?(e.message=t+"\\n	"+e.message,Error.call(e,e.message)):e=t+"\\n	"+e,e}function n(e,n,r){try{new Function(e).call(r)}catch(a){throw t(a,"Evaluating "+n)}}function r(){}function a(t){this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},z(this,"global",{get:function(){return e}})}function o(){a.call(this),this.paths={}}function s(e,t){var n,r="",a=0;for(var o in e){var s=o.split("*");if(s.length>2)throw new TypeError("Only one wildcard in a path is permitted");if(1==s.length){if(t==o)return e[o];if(t.substr(0,o.length-1)==o.substr(0,o.length-1)&&(t.length<o.length||t[o.length-1]==o[o.length-1])&&"/"==e[o][e[o].length-1])return e[o].substr(0,e[o].length-1)+(t.length>o.length?"/"+t.substr(o.length):"")}else{var i=s[0].length;i>=a&&t.substr(0,s[0].length)==s[0]&&t.substr(t.length-s[1].length)==s[1]&&(a=i,r=o,n=t.substr(s[0].length,t.length-s[1].length-s[0].length))}}var l=e[r];return"string"==typeof n&&(l=l.replace("*",n)),l}function i(){}function l(){o.call(this),J.call(this)}function u(){}function d(e,t){l.prototype[e]=t(l.prototype[e]||function(){})}function c(e){J=e(J||function(){})}function f(e){for(var t=[],n=[],r=0,a=e.length;a>r;r++){var o=I.call(t,e[r]);-1===o?(t.push(e[r]),n.push([r])):n[o].push(r)}return{names:t,indices:n}}function m(e){var t={};if("object"==typeof e||"function"==typeof e)if(C){var n;for(var r in e)(n=Object.getOwnPropertyDescriptor(e,r))&&z(t,r,n)}else{var a=e&&e.hasOwnProperty;for(var r in e)(!a||e.hasOwnProperty(r))&&(t[r]=e[r])}return t["default"]=e,z(t,"__useDefault",{value:!0}),t}function p(e,t,n){for(var r in t)n&&r in e||(e[r]=t[r]);return e}function h(e,t,n){for(var r in t){var a=t[r];r in e?a instanceof Array&&e[r]instanceof Array?e[r]=[].concat(n?a:e[r]).concat(n?e[r]:a):"object"==typeof a&&null!==a&&"object"==typeof e[r]?e[r]=p(p({},e[r]),a,n):n||(e[r]=a):e[r]=a}}function g(e){this.warnings&&"undefined"!=typeof console&&console.warn}function v(e,t){for(var n=e.split(".");n.length;)t=t[n.shift()];return t}function y(){if(H[this.baseURL])return H[this.baseURL];"/"!=this.baseURL[this.baseURL.length-1]&&(this.baseURL+="/");var e=new F(this.baseURL,L);return this.baseURL=e.href,H[this.baseURL]=e}function b(e,t){var n,r=0;for(var a in e)if(t.substr(0,a.length)==a&&(t.length==a.length||"/"==t[a.length])){var o=a.split("/").length;if(r>=o)continue;n=a,r=o}return n}function w(e){this.set("@system-env",this.newModule({browser:O,node:!!this._nodeRequire,production:e,"default":!0}))}function x(e){return("."!=e[0]||!!e[1]&&"/"!=e[1]&&"."!=e[1])&&"/"!=e[0]&&!e.match(B)}function S(e,t){return t&&(t=t.replace(/#/g,"%05")),new F(e,t||X).href.replace(/%05/g,"#")}function E(e,t){return new F(t,y.call(e)).href}function j(e,t){if(!x(e))return S(e,t);var n=b(this.map,e);if(n&&(e=this.map[n]+e.substr(n.length),!x(e)))return S(e);if(this.has(e))return e;if("@node/"==e.substr(0,6)&&-1!=Z.indexOf(e.substr(6))){if(!this._nodeRequire)throw new TypeError("Error loading "+e+". Can only load node core modules in Node.");return this.set(e,this.newModule(m(this._nodeRequire(e.substr(6))))),e}var r=s(this.paths,e);return r&&!x(r)?S(r):E(this,r||e)}function _(e){var t=e.match(V);return t&&"System.register"==e.substr(t[0].length,15)}function k(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}function P(t){if("string"==typeof t)return v(t,e);if(!(t instanceof Array))throw new Error("Global exports must be a string or array.");for(var n={},r=!0,a=0;a<t.length;a++){var o=v(t[a],e);r&&(n["default"]=o,r=!1),n[t[a].split(".").pop()]=o}return n}var R="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,O="undefined"!=typeof window&&"undefined"!=typeof document,M="undefined"!=typeof process&&"undefined"!=typeof process.platform&&!!process.platform.match(/^win/);e.console||(e.console={assert:function(){}});var z,I=Array.prototype.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(z=Object.defineProperty)}catch(e){z=function(e,t,n){try{e[t]=n.value||n.get.call(e)}catch(r){}}}}();var L;if("undefined"!=typeof document&&document.getElementsByTagName){if(L=document.baseURI,!L){var A=document.getElementsByTagName("base");L=A[0]&&A[0].href||window.location.href}L=L.split("#")[0].split("?")[0],L=L.substr(0,L.lastIndexOf("/")+1)}else if("undefined"!=typeof process&&process.cwd)L="file://"+(M?"/":"")+process.cwd()+"/",M&&(L=L.replace(/\\\\/g,"/"));else{if("undefined"==typeof location)throw new TypeError("No environment baseURI");L=e.location.href}var F=e.URLPolyfill||e.URL;z(r.prototype,"toString",{value:function(){return"Module"}}),function(){function o(e){return{status:"loading",name:e,linkSets:[],dependencies:[],metadata:{}}}function s(e,t,n){return new Promise(c({step:n.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:n&&n.metadata||{},moduleSource:n.source,moduleAddress:n.address}))}function i(e,t,n,r){return new Promise(function(a,o){a(e.loaderObj.normalize(t,n,r))}).then(function(t){var n;if(e.modules[t])return n=o(t),n.status="linked",n.module=e.modules[t],n;for(var r=0,a=e.loads.length;a>r;r++)if(n=e.loads[r],n.name==t)return n;return n=o(t),e.loads.push(n),l(e,n),n})}function l(e,t){u(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function u(e,t,n){d(e,t,n.then(function(n){return"loading"==t.status?(t.address=n,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:n})):void 0}))}function d(t,r,a){a.then(function(a){return"loading"==r.status?Promise.resolve(t.loaderObj.translate({name:r.name,metadata:r.metadata,address:r.address,source:a})).then(function(e){return r.source=e,t.loaderObj.instantiate({name:r.name,metadata:r.metadata,address:r.address,source:e})}).then(function(a){if(void 0===a)return r.address=r.address||"<Anonymous Module "+ ++j+">",r.isDeclarative=!0,E.call(t.loaderObj,r).then(function(t){var a=e.System,o=a.register;a.register=function(e,t,n){"string"!=typeof e&&(n=t,t=e),r.declare=n,r.depsList=t},n(t,r.address,{}),a.register=o});if("object"!=typeof a)throw TypeError("Invalid instantiate return value");r.depsList=a.deps||[],r.execute=a.execute,r.isDeclarative=!1}).then(function(){r.dependencies=[];for(var e=r.depsList,n=[],a=0,o=e.length;o>a;a++)(function(e,a){n.push(i(t,e,r.name,r.address).then(function(t){if(r.dependencies[a]={key:e,value:t.name},"linked"!=t.status)for(var n=r.linkSets.concat([]),o=0,s=n.length;s>o;o++)m(n[o],t)}))})(e[a],a);return Promise.all(n)}).then(function(){r.status="loaded";for(var e=r.linkSets.concat([]),t=0,n=e.length;n>t;t++)h(e[t],r)}):void 0})["catch"](function(e){r.status="failed",r.exception=e;for(var t=r.linkSets.concat([]),n=0,a=t.length;a>n;n++)g(t[n],r,e)})}function c(e){return function(t,n){var r=e.loader,a=e.moduleName,s=e.step;if(r.modules[a])throw new TypeError(\'"\'+a+\'" already exists in the module table\');for(var i,c=0,m=r.loads.length;m>c;c++)if(r.loads[c].name==a&&(i=r.loads[c],"translate"!=s||i.source||(i.address=e.moduleAddress,d(r,i,Promise.resolve(e.moduleSource))),i.linkSets.length&&i.linkSets[0].loads[0].name==i.name))return i.linkSets[0].done.then(function(){t(i)});var p=i||o(a);p.metadata=e.moduleMetadata;var h=f(r,p);r.loads.push(p),t(h.done),"locate"==s?l(r,p):"fetch"==s?u(r,p,Promise.resolve(e.moduleAddress)):(p.address=e.moduleAddress,d(r,p,Promise.resolve(e.moduleSource)))}}function f(e,t){var n={loader:e,loads:[],startingLoad:t,loadingCount:0};return n.done=new Promise(function(e,t){n.resolve=e,n.reject=t}),m(n,t),n}function m(e,t){if("failed"!=t.status){for(var n=0,r=e.loads.length;r>n;n++)if(e.loads[n]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,n=0,r=t.dependencies.length;r>n;n++)if(t.dependencies[n]){var o=t.dependencies[n].value;if(!a.modules[o])for(var s=0,i=a.loads.length;i>s;s++)if(a.loads[s].name==o){m(e,a.loads[s]);break}}}}function p(e){var t=!1;try{w(e,function(n,r){g(e,n,r),t=!0})}catch(n){g(e,null,n),t=!0}return t}function h(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var n=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var r=[].concat(e.loads),a=0,o=r.length;o>a;a++){var t=r[a];t.module=t.isDeclarative?{name:t.name,module:_({}),evaluated:!0}:{module:_({})},t.status="linked",v(e.loader,t)}return e.resolve(n)}var s=p(e);s||e.resolve(n)}}function g(e,n,r){var a=e.loader;e:if(n)if(e.loads[0].name==n.name)r=t(r,"Error loading "+n.name);else{for(var o=0;o<e.loads.length;o++)for(var s=e.loads[o],i=0;i<s.dependencies.length;i++){var l=s.dependencies[i];if(l.value==n.name){r=t(r,"Error loading "+n.name+\' as "\'+l.key+\'" from \'+s.name);break e}}r=t(r,"Error loading "+n.name+" from "+e.loads[0].name)}else r=t(r,"Error linking "+e.loads[0].name);for(var u=e.loads.concat([]),o=0,d=u.length;d>o;o++){var n=u[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==I.call(a.loaderObj.failed,n)&&a.loaderObj.failed.push(n);var c=I.call(n.linkSets,e);if(n.linkSets.splice(c,1),0==n.linkSets.length){var f=I.call(e.loader.loads,n);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(r)}function v(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var n={};t.dependencies.forEach(function(e){n[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:n,address:t.address,metadata:t.metadata,source:t.source,kind:t.isDeclarative?"declarative":"dynamic"}}t.name&&(e.modules[t.name]=t.module);var r=I.call(e.loads,t);-1!=r&&e.loads.splice(r,1);for(var a=0,o=t.linkSets.length;o>a;a++)r=I.call(t.linkSets[a].loads,t),-1!=r&&t.linkSets[a].loads.splice(r,1);t.linkSets.splice(0,t.linkSets.length)}function y(e,t,n){try{var a=t.execute()}catch(o){return void n(t,o)}return a&&a instanceof r?a:void n(t,new TypeError("Execution must define a Module instance"))}function b(e,t,n){var r=e._loader.importPromises;return r[t]=n.then(function(e){return r[t]=void 0,e},function(e){throw r[t]=void 0,e})}function w(e,t){var n=e.loader;if(e.loads.length)for(var r=e.loads.concat([]),a=0;a<r.length;a++){var o=r[a],s=y(e,o,t);if(!s)return;o.module={name:o.name,module:s},o.status="linked",v(n,o)}}function x(e,t){return t.module.module}function S(){}function E(){throw new TypeError("ES6 transpilation is only provided in the dev module loader build.")}var j=0;a.prototype={constructor:a,define:function(e,t,n){if(this._loader.importPromises[e])throw new TypeError("Module is already loading.");return b(this,e,new Promise(c({step:"translate",loader:this._loader,moduleName:e,moduleMetadata:n&&n.metadata||{},moduleSource:t,moduleAddress:n&&n.address})))},"delete":function(e){var t=this._loader;return delete t.importPromises[e],delete t.moduleRecords[e],t.modules[e]?delete t.modules[e]:!1},get:function(e){return this._loader.modules[e]?(S(this._loader.modules[e],[],this),this._loader.modules[e].module):void 0},has:function(e){return!!this._loader.modules[e]},"import":function(e,t,n){"object"==typeof t&&(t=t.name);var r=this;return Promise.resolve(r.normalize(e,t)).then(function(e){var t=r._loader;return t.modules[e]?(S(t.modules[e],[],t._loader),t.modules[e].module):t.importPromises[e]||b(r,e,s(t,e,{}).then(function(n){return delete t.importPromises[e],x(t,n)}))})},load:function(e){var t=this._loader;return t.modules[e]?Promise.resolve():t.importPromises[e]||b(this,e,new Promise(c({step:"locate",loader:t,moduleName:e,moduleMetadata:{},moduleSource:void 0,moduleAddress:void 0})).then(function(){delete t.importPromises[e]}))},module:function(e,t){var n=o();n.address=t&&t.address;var r=f(this._loader,n),a=Promise.resolve(e),s=this._loader,i=r.done.then(function(){return x(s,n)});return d(s,n,a),i},newModule:function(e){if("object"!=typeof e)throw new TypeError("Expected object");var t=new r,n=[];if(Object.getOwnPropertyNames&&null!=e)n=Object.getOwnPropertyNames(e);else for(var a in e)n.push(a);for(var o=0;o<n.length;o++)(function(n){z(t,n,{configurable:!1,enumerable:!0,get:function(){return e[n]},set:function(){throw new Error("Module exports cannot be changed externally.")}})})(n[o]);return Object.freeze&&Object.freeze(t),t},set:function(e,t){if(!(t instanceof r))throw new TypeError("Loader.set("+e+", module) must be a module");this._loader.modules[e]={module:t}},normalize:function(e,t,n){return e},locate:function(e){return e.name},fetch:function(e){},translate:function(e){return e.source},instantiate:function(e){}};var _=a.prototype.newModule}();var D;i.prototype=a.prototype,o.prototype=new i;var T;if("undefined"!=typeof XMLHttpRequest)T=function(e,t,n,r){function a(){n(s.responseText)}function o(){r(new Error("XHR error"+(s.status?" ("+s.status+(s.statusText?" "+s.statusText:"")+")":"")+" loading "+e))}var s=new XMLHttpRequest,i=!0,l=!1;if(!("withCredentials"in s)){var u=/^(\\w+:)?\\/\\/([^\\/]+)/.exec(e);u&&(i=u[2]===window.location.host,u[1]&&(i&=u[1]===window.location.protocol))}i||"undefined"==typeof XDomainRequest||(s=new XDomainRequest,s.onload=a,s.onerror=o,s.ontimeout=o,s.onprogress=function(){},s.timeout=0,l=!0),s.onreadystatechange=function(){4===s.readyState&&(0==s.status?s.responseText?a():(s.addEventListener("error",o),s.addEventListener("load",a)):200===s.status?a():o())},s.open("GET",e,!0),s.setRequestHeader&&(s.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&s.setRequestHeader("Authorization",t),s.withCredentials=!0)),l?setTimeout(function(){s.send()},0):s.send(null)};else if("undefined"!=typeof require&&"undefined"!=typeof process){var q;T=function(e,t,n,r){if("file:///"!=e.substr(0,8))throw new Error(\'Unable to fetch "\'+e+\'". Only file URLs of the form file:/// allowed running in Node.\');return q=q||require("fs"),e=M?e.replace(/\\//g,"\\\\").substr(8):e.substr(7),q.readFile(e,function(e,t){if(e)return r(e);var a=t+"";"\\ufeff"===a[0]&&(a=a.substr(1)),n(a)})}}else{if("undefined"==typeof self||"undefined"==typeof self.fetch)throw new TypeError("No environment fetch API available.");T=function(e,t,n,r){var a={headers:{Accept:"application/x-es-module, */*"}};t&&("string"==typeof t&&(a.headers.Authorization=t),a.credentials="include"),fetch(e,a).then(function(e){if(e.ok)return e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(n,r)}}o.prototype.fetch=function(e){return new Promise(function(t,n){T(e.address,void 0,t,n)})};(function(){function t(t){var r=this;return Promise.resolve(e["typescript"==r.transpiler?"ts":r.transpiler]||(r.pluginLoader||r)["import"](r.transpiler)).then(function(e){e.__useDefault&&(e=e["default"]);var a;return a=e.Compiler?n:e.createLanguageService?s:o,"(function(__moduleName){"+a.call(r,t,e)+\'\\n})("\'+t.name+\'");\\n//# sourceURL=\'+t.address+"!transpiled"})}function n(e,t){var n=this.traceurOptions||{};n.modules="instantiate",n.script=!1,void 0===n.sourceMaps&&(n.sourceMaps="inline"),n.filename=e.address,n.inputSourceMap=e.metadata.sourceMap,n.moduleName=!1;var a=new t.Compiler(n);return r(e.source,a,n.filename)}function r(e,t,n){try{return t.compile(e,n)}catch(r){if(r.length)throw r[0];throw r}}function o(e,t){var n=this.babelOptions||{};return n.modules="system",void 0===n.sourceMap&&(n.sourceMap="inline"),n.inputSourceMap=e.metadata.sourceMap,n.filename=e.address,n.code=!0,n.ast=!1,t.transform(e.source,n).code}function s(e,t){var n=this.typescriptOptions||{};return n.target=n.target||t.ScriptTarget.ES5,void 0===n.sourceMap&&(n.sourceMap=!0),n.sourceMap&&n.inlineSourceMap!==!1&&(n.inlineSourceMap=!0),n.module=t.ModuleKind.System,t.transpile(e.source,n,e.address)}return a.prototype.transpiler="traceur",t})();u.prototype=o.prototype,l.prototype=new u,l.prototype.constructor=l,l.prototype.instantiate=function(){};var J,C=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(U){C=!1}var N,$=["main","format","defaultExtension","meta","map","basePath","depCache"];!function(){function n(e){var t=e.source.lastIndexOf("\\n"),n="global"!=e.metadata.format,r=e.metadata.sourceMap;if(r){if("object"!=typeof r)throw new TypeError("load.metadata.sourceMap must be set to an object.");r=JSON.stringify(r)}return(n?"(function(System, SystemJS, require) {":"")+e.source+(n?"\\n})(System, System);":"")+("\\n//# sourceURL="!=e.source.substr(t,15)?"\\n//# sourceURL="+e.address+(r?"!transpiled":""):"")+(r&&i&&"\\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(r)))||"")}function r(t,n){s=n,0==u++&&(l=e.System),e.System=e.SystemJS=t}function a(){0==--u&&(e.System=e.SystemJS=l),s=void 0}function o(e){m||(m=document.head||document.body||document.documentElement);var o=document.createElement("script");o.text=n(e,!1);var s,i=window.onerror;if(window.onerror=function(n){s=t(n,"Evaluating "+e.address)},r(this,e),e.metadata.integrity&&o.setAttribute("integrity",e.metadata.integrity),e.metadata.nonce&&o.setAttribute("nonce",e.metadata.nonce),m.appendChild(o),m.removeChild(o),a(),window.onerror=i,s)throw s}var s,i="undefined"!=typeof btoa;d("pushRegister_",function(){return function(e){return s?(this.reduceRegister_(s,e),!0):!1}});var l,u=0;N=function(e){if(e.source){if((e.metadata.integrity||e.metadata.nonce)&&c)return o.call(this,e);try{r(this,e),s=e,(0,eval)(n(e)),a()}catch(i){throw a(),t(i,"Evaluating "+e.address)}}};var c=!1;if(O&&"undefined"!=typeof document&&document.getElementsByTagName){var f=document.getElementsByTagName("script");$__curScript=f[f.length-1],window.chrome&&window.chrome.extension||navigator.userAgent.match(/^Node\\.js/)||(c=!0)}var m}();var B=/^[^\\/]+:\\/\\//,H={},X=new F(L);c(function(e){return function(){e.call(this),this.baseURL=L.substr(0,L.lastIndexOf("/")+1),this.map={},this.paths={},this.warnings=!1,this.defaultJSExtensions=!1,this.pluginFirst=!1,this.loaderErrorStack=!1,this.set("@empty",this.newModule({})),w.call(this,!1)}}),"undefined"==typeof require||"undefined"==typeof process||process.browser||(l.prototype._nodeRequire=require);var Z=["assert","buffer","child_process","cluster","console","constants","crypto","dgram","dns","domain","events","fs","http","https","module","net","os","path","process","punycode","querystring","readline","repl","stream","string_decoder","sys","timers","tls","tty","url","util","vm","zlib"];d("normalize",function(e){return function(e,t,n){var r=j.call(this,e,t);return n||!this.defaultJSExtensions||".js"==r.substr(r.length-3,3)||x(r)||(r+=".js"),r}});var G="undefined"!=typeof XMLHttpRequest;d("locate",function(e){return function(t){return Promise.resolve(e.call(this,t)).then(function(e){return G?e.replace(/#/g,"%23"):e})}}),d("fetch",function(){return function(e){return new Promise(function(t,n){T(e.address,e.metadata.authorization,t,n)})}}),d("import",function(e){return function(t,n,r){return n&&n.name&&g.call(this,"SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing "+t+" from "+n.name),e.call(this,t,n,r).then(function(e){return e.__useDefault?e["default"]:e})}}),d("translate",function(e){return function(t){return"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t)}}),d("instantiate",function(e){return function(e){if("json"==e.metadata.format&&!this.builder){var t=e.metadata.entry=k();t.deps=[],t.execute=function(){try{return JSON.parse(e.source)}catch(t){throw new Error("Invalid JSON file "+e.name)}}}}}),l.prototype.env="development";var W;l.prototype.config=function(e){function t(e){for(var t in e)if(hasOwnProperty.call(e,t))return!0}var n=this;if("loaderErrorStack"in e&&(W=$__curScript,e.loaderErrorStack?$__curScript=void 0:$__curScript=W),"warnings"in e&&(n.warnings=e.warnings),e.transpilerRuntime===!1&&(n._loader.loadedTranspilerRuntime=!0),e.baseURL){if(t(n.packages)||t(n.meta)||t(n.depCache)||t(n.bundles)||t(n.packageConfigPaths))throw new TypeError("Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.");n.baseURL=e.baseURL,y.call(n)}if(e.defaultJSExtensions&&(n.defaultJSExtensions=e.defaultJSExtensions,g.call(n,"The defaultJSExtensions configuration option is deprecated, use packages configuration instead.")),e.pluginFirst&&(n.pluginFirst=e.pluginFirst),e.production&&w.call(n,!0),e.paths)for(var r in e.paths)n.paths[r]=e.paths[r];if(e.map){var a="";for(var r in e.map){var o=e.map[r];if("string"!=typeof o){a+=(a.length?", ":"")+\'"\'+r+\'"\';var s=n.defaultJSExtensions&&".js"!=r.substr(r.length-3,3),i=n.decanonicalize(r);s&&".js"==i.substr(i.length-3,3)&&(i=i.substr(0,i.length-3));var l="";for(var u in n.packages)i.substr(0,u.length)==u&&(!i[u.length]||"/"==i[u.length])&&l.split("/").length<u.split("/").length&&(l=u);l&&n.packages[l].main&&(i=i.substr(0,i.length-n.packages[l].main.length-1));var u=n.packages[i]=n.packages[i]||{};u.map=o}else n.map[r]=o}a&&g.call(n,"The map configuration for "+a+\' uses object submaps, which is deprecated in global map.\\nUpdate this to use package contextual map with configs like SystemJS.config({ packages: { "\'+r+\'": { map: {...} } } }).\')}if(e.packageConfigPaths){for(var d=[],c=0;c<e.packageConfigPaths.length;c++){var f=e.packageConfigPaths[c],m=Math.max(f.lastIndexOf("*")+1,f.lastIndexOf("/")),s=n.defaultJSExtensions&&".js"!=f.substr(m-3,3),p=n.decanonicalize(f.substr(0,m));s&&".js"==p.substr(p.length-3,3)&&(p=p.substr(0,p.length-3)),d[c]=p+f.substr(m)}n.packageConfigPaths=d}if(e.bundles)for(var r in e.bundles){for(var v=[],c=0;c<e.bundles[r].length;c++){var s=n.defaultJSExtensions&&".js"!=e.bundles[r][c].substr(e.bundles[r][c].length-3,3),b=n.decanonicalize(e.bundles[r][c]);s&&".js"==b.substr(b.length-3,3)&&(b=b.substr(0,b.length-3)),v.push(b)}n.bundles[r]=v}if(e.packages)for(var r in e.packages){if(r.match(/^([^\\/]+:)?\\/\\/$/))throw new TypeError(\'"\'+r+\'" is not a valid package name.\');var i=j.call(n,r);"/"==i[i.length-1]&&(i=i.substr(0,i.length-1)),n.packages[i]=n.packages[i]||{};var u=e.packages[r];u.modules&&(g.call(n,"Package "+r+\' is configured with "modules", which is deprecated as it has been renamed to "meta".\'),u.meta=u.modules,delete u.modules),"object"==typeof u.main&&(u.map=u.map||{},u.map["./@main"]=u.main,u.main["default"]=u.main["default"]||"./",u.main="@main");for(var S in u)-1==I.call($,S)&&g.call(n,\'"\'+S+\'" is not a valid package configuration option in package \'+r);h(n.packages[i],u)}for(var E in e){var o=e[E];if("baseURL"!=E&&"map"!=E&&"packages"!=E&&"bundles"!=E&&"paths"!=E&&"warnings"!=E&&"packageConfigPaths"!=E&&"loaderErrorStack"!=E)if("object"!=typeof o||o instanceof Array)n[E]=o;else{n[E]=n[E]||{};for(var r in o)if("meta"==E&&"*"==r[0])n[E][r]=o[r];else if("meta"==E){var _=j.call(n,r);n.defaultJSExtensions&&".js"!=_.substr(_.length-3,3)&&!x(_)&&(_+=".js"),n[E][_]=o[r]}else if("depCache"==E){var s=n.defaultJSExtensions&&".js"!=r.substr(r.length-3,3),i=n.decanonicalize(r);s&&".js"==i.substr(i.length-3,3)&&(i=i.substr(0,i.length-3)),n[E][i]=o[r]}else n[E][r]=o[r]}}},function(){function e(e,t){var n,r,a=0;for(var o in e.packages)t.substr(0,o.length)!==o||t.length!==o.length&&"/"!==t[o.length]||(r=o.split("/").length,r>a&&(n=o,a=r));return n}function t(e,t,n,r,a){if(!r||"/"==r[r.length-1]||a||t.defaultExtension===!1)return r;if(r.match(interpolationRegEx))return r;var o=!1;if(t.meta&&p(t.meta,r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),!o&&e.meta&&p(e.meta,n+"/"+r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),o)return r;var s="."+(t.defaultExtension||"js");return r.substr(r.length-s.length)!=s?r+s:r}function n(e,n,r,o,s){if(!o){if(!n.main)return r+(e.defaultJSExtensions?".js":"");o="./"==n.main.substr(0,2)?n.main.substr(2):n.main}if(n.map){var i="./"+o,l=b(n.map,i);if(l||(i="./"+t(e,n,r,o,s),i!="./"+o&&(l=b(n.map,i))),l)return a(e,n,r,l,i,s)}return r+"/"+t(e,n,r,o,s)}function r(e,t,n){if("."==e)throw new Error("Package "+n+\' has a map entry for "." which is not permitted.\');if(t.substr(0,e.length)==e&&"/"!=e[e.length-1]&&"/"==t[e.length])throw new Error("Package "+n+\' has a recursive map for "\'+e+\'" which is not permitted.\')}function a(e,n,a,o,s,i){var l=n.map[o];if("object"==typeof l)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+a);if(r(o,l,a),"string"!=typeof l&&(l=o=s),r(o,l,a),"."==l)l=a;else if("./"==l.substr(0,2))return a+"/"+t(e,n,a,l.substr(2)+s.substr(o.length),i);return e.normalizeSync(l+s.substr(o.length),a+"/")}function o(e,n,r,a,o){if(!a){if(!n.main)return Promise.resolve(r+(e.defaultJSExtensions?".js":""));a="./"==n.main.substr(0,2)?n.main.substr(2):n.main}var s,l;return n.map&&(s="./"+a,l=b(n.map,s),l||(s="./"+t(e,n,r,a,o),s!="./"+a&&(l=b(n.map,s)))),(l?i(e,n,r,l,s,o):Promise.resolve()).then(function(s){return s?Promise.resolve(s):Promise.resolve(r+"/"+t(e,n,r,a,o))})}function s(e,n,r,a,o,s,i){if("."==o)o=r;else if("./"==o.substr(0,2))return Promise.resolve(r+"/"+t(e,n,r,o.substr(2)+s.substr(a.length),i)).then(function(t){return interpolateConditional.call(e,t,r+"/")});return e.normalize(o+s.substr(a.length),r+"/")}function i(e,t,n,a,o,i){var l=t.map[a];return"string"==typeof l?(r(a,l,n),s(e,t,n,a,l,o,i)):e.builder?Promise.resolve(n+"/#:"+o):e["import"](t.map["@env"]||"@system-env",n).then(function(e){for(var t in l){var n="~"==t[0],r=v(n?t.substr(1):t,e);if(!n&&r||n&&!r)return l[t]}}).then(function(l){if(l){if("string"!=typeof l)throw new Error("Unable to map a package conditional to a package conditional.");return r(a,l,n),s(e,t,n,a,l,o,i)}})}function u(e){var t=e.lastIndexOf("*"),n=Math.max(t+1,e.lastIndexOf("/"));return{length:n,regEx:new RegExp("^("+e.substr(0,n).replace(/[.+?^${}()|[\\]\\\\]/g,"\\\\$&").replace(/\\*/g,"[^\\\\/]+")+")(\\\\/|$)"),wildcard:-1!=t}}function f(e,t){for(var n,r,a=!1,o=0;o<e.packageConfigPaths.length;o++){var s=e.packageConfigPaths[o],i=y[s]||(y[s]=u(s));if(!(t.length<i.length)){var l=t.match(i.regEx);!l||n&&(a&&i.wildcard||!(n.length<l[1].length))||(n=l[1],a=!i.wildcard,r=n+s.substr(i.length))}}return n?{packageName:n,configPath:r}:void 0}function m(e,t,n){var r=e.pluginLoader||e;return(r.meta[n]=r.meta[n]||{}).format="json",r.load(n).then(function(){var a=r.get(n)["default"];a.systemjs&&(a=a.systemjs),a.modules&&(a.meta=a.modules,g.call(e,"Package config file "+n+\' is configured with "modules", which is deprecated as it has been renamed to "meta".\'));for(var o in a)-1==I.call($,o)&&delete a[o];var s=e.packages[t]=e.packages[t]||{};if(h(s,a,!0),a.depCache){for(var i in a.depCache){var l;l="./"==i.substr(0,2)?t+"/"+i.substr(2):j.call(e,i),e.depCache[l]=(e.depCache[l]||[]).concat(a.depCache[i])}delete a.depCache}return"object"==typeof s.main&&(s.map=s.map||{},s.map["./@main"]=s.main,s.main["default"]=s.main["default"]||"./",s.main="@main"),s})}function p(e,t,n){var r;for(var a in e){var o="./"==a.substr(0,2)?"./":"";if(o&&(a=a.substr(2)),r=a.indexOf("*"),-1!==r&&a.substr(0,r)==t.substr(0,r)&&a.substr(r+1)==t.substr(t.length-a.length+r+1)&&n(a,e[o+a],a.split("/").length))return}var s=e[t]&&e.hasOwnProperty&&e.hasOwnProperty(t)?e[t]:e["./"+t];s&&n(s,s,0)}c(function(e){return function(){e.call(this),this.packages={},this.packageConfigPaths=[]}}),l.prototype.normalizeSync=l.prototype.decanonicalize=l.prototype.normalize,d("decanonicalize",function(t){return function(n,r){if(this.builder)return t.call(this,n,r,!0);var a=t.call(this,n,r);if(!this.defaultJSExtensions)return a;var o=e(this,a),s=this.packages[o],i=s&&s.defaultExtension;return void 0==i&&s&&s.meta&&p(s.meta,a.substr(o),function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?(i=!1,!0):void 0}),(i===!1||i&&".js"!=i)&&".js"!=n.substr(n.length-3,3)&&".js"==a.substr(a.length-3,3)&&(a=a.substr(0,a.length-3)),a}}),d("normalizeSync",function(t){return function(r,o,s){g.call(this,"SystemJS.normalizeSync has been deprecated for SystemJS.decanonicalize.");var i=this;if(s=s===!0,o)var l=e(i,o)||i.defaultJSExtensions&&".js"==o.substr(o.length-3,3)&&e(i,o.substr(0,o.length-3));var u=l&&i.packages[l];if(u&&"."!=r[0]){var d=u.map,c=d&&b(d,r);if(c&&"string"==typeof d[c])return a(i,u,l,c,r,s)}var m=i.defaultJSExtensions&&".js"!=r.substr(r.length-3,3),p=t.call(i,r,o);m&&".js"!=p.substr(p.length-3,3)&&(m=!1),m&&(p=p.substr(0,p.length-3));var h=f(i,p),v=h&&h.packageName||e(i,p);if(!v)return p+(m?".js":"");var y=p.substr(v.length+1);return n(i,i.packages[v]||{},v,y,s)}}),d("normalize",function(t){return function(n,r,a){var s=this;return a=a===!0,Promise.resolve().then(function(){if(r)var t=e(s,r)||s.defaultJSExtensions&&".js"==r.substr(r.length-3,3)&&e(s,r.substr(0,r.length-3));var o=t&&s.packages[t];if(o&&"./"!=n.substr(0,2)){var l=o.map,u=l&&b(l,n);if(u)return i(s,o,t,u,n,a)}return Promise.resolve()}).then(function(i){if(i)return i;var l=s.defaultJSExtensions&&".js"!=n.substr(n.length-3,3),u=t.call(s,n,r);l&&".js"!=u.substr(u.length-3,3)&&(l=!1),l&&(u=u.substr(0,u.length-3));var d=f(s,u),c=d&&d.packageName||e(s,u);if(!c)return Promise.resolve(u+(l?".js":""));var p=s.packages[c],h=p&&(p.configured||!d);return(h?Promise.resolve(p):m(s,c,d.configPath)).then(function(e){var t=u.substr(c.length+1);return o(s,e,c,t,a)})})}});var y={};d("locate",function(t){return function(n){var r=this;return Promise.resolve(t.call(this,n)).then(function(t){var a=e(r,n.name);if(a){var o=r.packages[a],s=n.name.substr(a.length+1);o.format&&(n.metadata.format=n.metadata.format||o.format);var i={};if(o.meta){var l=0;p(o.meta,s,function(e,t,n){n>l&&(l=n),h(i,t,n&&l>n)}),h(n.metadata,i)}}return t})}})}(),function(){function t(){if(s&&"interactive"===s.script.readyState)return s.load;for(var e=0;e<u.length;e++)if("interactive"==u[e].script.readyState)return s=u[e],s.load}function n(e,t){return new Promise(function(e,n){t.metadata.integrity&&n(new Error("Subresource integrity checking is not supported in web workers.")),i=t;try{importScripts(t.address)}catch(r){i=null,n(r)}i=null,t.metadata.entry||n(new Error(t.address+" did not call System.register or AMD define")),e("")})}if("undefined"!=typeof document)var r=document.getElementsByTagName("head")[0];var a,o,s,i=null,l=r&&function(){var e=document.createElement("script"),t="undefined"!=typeof opera&&"[object Opera]"===opera.toString();return e.attachEvent&&!(e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0)&&!t}(),u=[],c=0,f=[];d("pushRegister_",function(e){return function(n){return e.call(this,n)?!1:(i?this.reduceRegister_(i,n):l?this.reduceRegister_(t(),n):c?f.push(n):this.reduceRegister_(null,n),!0)}}),d("fetch",function(t){return function(i){var d=this;return"json"!=i.metadata.format&&i.metadata.scriptLoad&&(O||R)?R?n(d,i):new Promise(function(t,n){function m(e){if(!g.readyState||"loaded"==g.readyState||"complete"==g.readyState){\r\nif(c--,i.metadata.entry||f.length){if(!l){for(var r=0;r<f.length;r++)d.reduceRegister_(i,f[r]);f=[]}}else d.reduceRegister_(i);h(),i.metadata.entry||i.metadata.bundle||n(new Error(i.name+" did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.")),t("")}}function p(e){h(),n(new Error("Unable to load script "+i.address))}function h(){if(e.System=a,e.require=o,g.detachEvent){g.detachEvent("onreadystatechange",m);for(var t=0;t<u.length;t++)u[t].script==g&&(s&&s.script==g&&(s=null),u.splice(t,1))}else g.removeEventListener("load",m,!1),g.removeEventListener("error",p,!1);r.removeChild(g)}var g=document.createElement("script");g.async=!0,i.metadata.crossOrigin&&(g.crossOrigin=i.metadata.crossOrigin),i.metadata.integrity&&g.setAttribute("integrity",i.metadata.integrity),l?(g.attachEvent("onreadystatechange",m),u.push({script:g,load:i})):(g.addEventListener("load",m,!1),g.addEventListener("error",p,!1)),c++,a=e.System,o=e.require,g.src=i.address,r.appendChild(g)}):t.call(this,i)}})}();var V=/^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*"[^"]+"\\s*;?|\\s*\'[^\']+\'\\s*;?)*\\s*/;!function(){function t(e,n,r){if(r[e.groupIndex]=r[e.groupIndex]||[],-1==I.call(r[e.groupIndex],e)){r[e.groupIndex].push(e);for(var a=0,o=e.normalizedDeps.length;o>a;a++){var s=e.normalizedDeps[a],i=n.defined[s];if(i&&!i.evaluated){var l=e.groupIndex+(i.declarative!=e.declarative);if(null===i.groupIndex||i.groupIndex<l){if(null!==i.groupIndex&&(r[i.groupIndex].splice(I.call(r[i.groupIndex],i),1),0==r[i.groupIndex].length))throw new Error("Mixed dependency cycle detected");i.groupIndex=l}t(i,n,r)}}}}function n(e,n){var r=n.defined[e];if(!r.module){r.groupIndex=0;var a=[];t(r,n,a);for(var o=!!r.declarative==a.length%2,i=a.length-1;i>=0;i--){for(var l=a[i],d=0;d<l.length;d++){var c=l[d];o?s(c,n):u(c,n)}o=!o}}}function a(){}function o(e,t){return t[e]||(t[e]={name:e,dependencies:[],exports:new a,importers:[]})}function s(t,n){if(!t.module){var r=n._loader.moduleRecords,a=t.module=o(t.name,r),i=t.module.exports,l=t.declare.call(e,function(e,t){if(a.locked=!0,"object"==typeof e)for(var n in e)i[n]=e[n];else i[e]=t;for(var r=0,o=a.importers.length;o>r;r++){var s=a.importers[r];if(!s.locked){var l=I.call(s.dependencies,a);s.setters[l](i)}}return a.locked=!1,t},{id:t.name});if(a.setters=l.setters,a.execute=l.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var u=0,d=t.normalizedDeps.length;d>u;u++){var c,f=t.normalizedDeps[u],m=n.defined[f],p=r[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(s(m,n),p=m.module,c=p.exports):c=n.get(f),p&&p.importers?(p.importers.push(a),a.dependencies.push(p)):a.dependencies.push(null);for(var h=t.originalIndices[u],g=0,v=h.length;v>g;++g){var y=h[g];a.setters[y]&&a.setters[y](c)}}}}function i(e,t){var n,r=t.defined[e];if(r)r.declarative?p(e,[],t):r.evaluated||u(r,t),n=r.module.exports;else if(n=t.get(e),!n)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&n&&n.__useDefault?n["default"]:n}function u(t,n){if(!t.module){var a={},o=t.module={exports:a,id:t.name};if(!t.executingRequire)for(var s=0,l=t.normalizedDeps.length;l>s;s++){var d=t.normalizedDeps[s],c=n.defined[d];c&&u(c,n)}t.evaluated=!0;var f=t.execute.call(e,function(e){for(var r=0,a=t.deps.length;a>r;r++)if(t.deps[r]==e)return i(t.normalizedDeps[r],n);var o=n.normalizeSync(e,t.name);if(-1!=I.call(t.normalizedDeps,o))return i(o,n);throw new Error("Module "+e+" not declared as a dependency of "+t.name)},a,o);f&&(o.exports=f),a=o.exports,a&&(a.__esModule||a instanceof r)?t.esModule=a:t.esmExports&&a!==e?t.esModule=m(a):t.esModule={"default":a}}}function p(t,n,r){var a=r.defined[t];if(a&&!a.evaluated&&a.declarative){n.push(t);for(var o=0,s=a.normalizedDeps.length;s>o;o++){var i=a.normalizedDeps[o];-1==I.call(n,i)&&(r.defined[i]?p(i,n,r):r.get(i))}a.evaluated||(a.evaluated=!0,a.module.execute.call(e))}}l.prototype.register=function(e,t,n){if("string"!=typeof e&&(n=t,t=e,e=null),"boolean"==typeof n)return this.registerDynamic.apply(this,arguments);var r=k();r.name=e&&(this.decanonicalize||this.normalize).call(this,e),r.declarative=!0,r.deps=t,r.declare=n,this.pushRegister_({amd:!1,entry:r})},l.prototype.registerDynamic=function(e,t,n,r){"string"!=typeof e&&(r=n,n=t,t=e,e=null);var a=k();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=r,a.executingRequire=n,this.pushRegister_({amd:!1,entry:a})},d("reduceRegister_",function(){return function(e,t){if(t){var n=t.entry,r=e&&e.metadata;if(n.name&&(n.name in this.defined||(this.defined[n.name]=n),r&&(r.bundle=!0)),!n.name||e&&n.name==e.name){if(!r)throw new TypeError("Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.");if(r.entry)throw"register"==r.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+r.format+" module format, but called System.register.");r.format||(r.format="register"),r.entry=n}}}}),c(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),z(a,"toString",{value:function(){return"Module"}}),d("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),d("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),d("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.call(this,t)).then(function(e){return("register"==t.metadata.format||!t.metadata.format&&_(t.source))&&(t.metadata.format="register"),e})}}),d("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var r,a=this;if(a.defined[t.name])r=a.defined[t.name],r.declarative||(r.deps=r.deps.concat(t.metadata.deps));else if(t.metadata.entry)r=t.metadata.entry,r.deps=r.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof N&&N.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn\'t execute.");r=t.metadata.entry,r&&t.metadata.deps&&(r.deps=r.deps.concat(t.metadata.deps))}r||(r=k(),r.deps=t.metadata.deps,r.execute=function(){}),a.defined[t.name]=r;var o=f(r.deps);r.deps=o.names,r.originalIndices=o.indices,r.name=t.name,r.esmExports=t.metadata.esmExports!==!1;for(var s=[],i=0,l=r.deps.length;l>i;i++)s.push(Promise.resolve(a.normalize(r.deps[i],t.name)));return Promise.all(s).then(function(e){return r.normalizedDeps=e,{deps:r.deps,execute:function(){return n(t.name,a),p(t.name,[],a),a.defined[t.name]=void 0,a.newModule(r.declarative?r.module.exports:r.esModule)}}})}})}();var K="undefined"!=typeof self?"self":"global";d("fetch",function(e){return function(t){return t.metadata.exports&&!t.metadata.format&&(t.metadata.format="global"),e.call(this,t)}}),d("instantiate",function(e){return function(t){var n=this;if(t.metadata.format||(t.metadata.format="global"),"global"==t.metadata.format&&!t.metadata.registered){var r=k();t.metadata.entry=r,r.deps=[];for(var a in t.metadata.globals){var o=t.metadata.globals[a];o&&r.deps.push(o)}r.execute=function(e,r,a){var o;if(t.metadata.globals){o={};for(var s in t.metadata.globals)t.metadata.globals[s]&&(o[s]=e(t.metadata.globals[s]))}var i=t.metadata.exports;i&&(t.source+="\\n"+K+\'["\'+i+\'"] = \'+i+";");var l=n.get("@@global-helpers").prepareGlobal(a.id,i,o);try{N.call(n,t)}catch(u){throw l(),u}return l()}}return e.call(this,t)}}),d("reduceRegister_",function(e){return function(t,n){if(n||!t.metadata.exports)return e.call(this,t,n);t.metadata.format="global";var r=t.metadata.entry=k();r.deps=t.metadata.deps;var a=P(t.metadata.exports);r.execute=function(){return a}}}),c(function(t){return function(){function n(t){if(Object.keys)Object.keys(e).forEach(t);else for(var n in e)s.call(e,n)&&t(n)}function r(t){n(function(n){if(-1==I.call(i,n)){try{var r=e[n]}catch(a){i.push(n)}t(n,r)}})}var a=this;t.call(a);var o,s=Object.prototype.hasOwnProperty,i=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"];a.set("@@global-helpers",a.newModule({prepareGlobal:function(t,n,a){var s=e.define;e.define=void 0;var i;if(a){i={};for(var l in a)i[l]=e[l],e[l]=a[l]}return n||(o={},r(function(e,t){o[e]=t})),function(){var t;if(n)t=P(n);else{t={};var a,l;r(function(e,n){o[e]!==n&&"undefined"!=typeof n&&(t[e]=n,"undefined"!=typeof a?l||a===n||(l=!0):a=n)}),t=l?t:a}if(i)for(var u in i)e[u]=i[u];return e.define=s,t}}}))}}),function(){function t(e){function t(e,t){for(var n=0;n<e.length;n++)if(e[n][0]<t.index&&e[n][1]>t.index)return!0;return!1}r.lastIndex=a.lastIndex=o.lastIndex=0;var n,s=[],i=[],l=[];if(e.length/e.split("\\n").length<200){for(;n=o.exec(e);)i.push([n.index,n.index+n[0].length]);for(;n=a.exec(e);)t(i,n)||l.push([n.index,n.index+n[0].length])}for(;n=r.exec(e);)if(!t(i,n)&&!t(l,n)){var u=n[1].substr(1,n[1].length-2);if(u.match(/"|\'/))continue;"/"==u[u.length-1]&&(u=u.substr(0,u.length-1)),s.push(u)}return s}var n=/(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[[\'"]|\\.)|module(\\.exports|\\[\'exports\'\\]|\\["exports"\\])\\s*(\\[[\'"]|[=,\\.]))/,r=/(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF."\'])require\\s*\\(\\s*("[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\')\\s*\\)/g,a=/(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/gm,o=/("[^"\\\\\\n\\r]*(\\\\.[^"\\\\\\n\\r]*)*"|\'[^\'\\\\\\n\\r]*(\\\\.[^\'\\\\\\n\\r]*)*\')/g,s=/^\\#\\!.*/;d("instantiate",function(a){return function(o){var i=this;if(o.metadata.format||(n.lastIndex=0,r.lastIndex=0,(r.exec(o.source)||n.exec(o.source))&&(o.metadata.format="cjs")),"cjs"==o.metadata.format){var l=o.metadata.deps,u=o.metadata.cjsRequireDetection===!1?[]:t(o.source);for(var d in o.metadata.globals)o.metadata.globals[d]&&u.push(o.metadata.globals[d]);var c=k();o.metadata.entry=c,c.deps=u,c.executingRequire=!0,c.execute=function(t,n,r){function a(e){return"/"==e[e.length-1]&&(e=e.substr(0,e.length-1)),t.apply(this,arguments)}if(a.resolve=function(e){return i.get("@@cjs-helpers").requireResolve(e,r.id)},!o.metadata.cjsDeferDepsExecute)for(var u=0;u<l.length;u++)a(l[u]);var d=i.get("@@cjs-helpers").getPathVars(r.id),c={exports:n,args:[a,n,r,d.filename,d.dirname,e,e]},f="(function(require, exports, module, __filename, __dirname, global, GLOBAL";if(o.metadata.globals)for(var m in o.metadata.globals)c.args.push(a(o.metadata.globals[m])),f+=", "+m;var p=e.define;e.define=void 0,e.__cjsWrapper=c,o.source=f+") {"+o.source.replace(s,"")+"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);",N.call(i,o),e.__cjsWrapper=void 0,e.define=p}}return a.call(i,o)}})}(),c(function(e){return function(){function t(e){return"file:///"==e.substr(0,8)?e.substr(7+!!M):r&&e.substr(0,r.length)==r?e.substr(r.length):e}var n=this;if(e.call(n),"undefined"!=typeof window&&"undefined"!=typeof document&&window.location)var r=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");n.set("@@cjs-helpers",n.newModule({requireResolve:function(e,r){return t(n.normalizeSync(e,r))},getPathVars:function(e){var n,r=e.lastIndexOf("!");n=-1!=r?e.substr(0,r):e;var a=n.split("/");return a.pop(),a=a.join("/"),{filename:t(n),dirname:t(a)}}}))}}),d("fetch",function(t){return function(n){return n.metadata.scriptLoad&&O&&(e.define=this.amdDefine),t.call(this,n)}}),c(function(t){return function(){function n(e,t){e=e.replace(s,"");var n=e.match(u),r=(n[1].split(",")[t]||"require").replace(c,""),a=f[r]||(f[r]=new RegExp(i+r+l,"g"));a.lastIndex=0;for(var o,d=[];o=a.exec(e);)d.push(o[2]||o[3]);return d}function r(e,t,n,a){if("object"==typeof e&&!(e instanceof Array))return r.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if("string"==typeof e&&"function"==typeof t&&(e=[e]),!(e instanceof Array)){if("string"==typeof e){var s=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),i=o.decanonicalize(e,a);s&&".js"==i.substr(i.length-3,3)&&(i=i.substr(0,i.length-3));var l=o.get(i);if(!l)throw new Error(\'Module not already loaded loading "\'+e+\'" as \'+i+(a?\' from "\'+a+\'".\':"."));return l.__useDefault?l["default"]:l}throw new TypeError("Invalid require")}for(var u=[],d=0;d<e.length;d++)u.push(o["import"](e[d],a));Promise.all(u).then(function(e){t&&t.apply(null,e)},n)}function a(t,a,s){function i(t,n,i){function c(e,n,a){return"string"==typeof e&&"function"!=typeof n?t(e):r.call(o,e,n,a,i.id)}for(var f=[],m=0;m<a.length;m++)f.push(t(a[m]));i.uri=i.id,i.config=function(){},-1!=d&&f.splice(d,0,i),-1!=u&&f.splice(u,0,n),-1!=l&&(c.toUrl=function(e){var t=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),n=o.decanonicalize(e,i.id);return t&&".js"==n.substr(n.length-3,3)&&(n=n.substr(0,n.length-3)),n},f.splice(l,0,c));var p=e.require;e.require=r;var h=s.apply(-1==u?e:n,f);return e.require=p,"undefined"==typeof h&&i&&(h=i.exports),"undefined"!=typeof h?h:void 0}"string"!=typeof t&&(s=a,a=t,t=null),a instanceof Array||(s=a,a=["require","exports","module"].splice(0,s.length)),"function"!=typeof s&&(s=function(e){return function(){return e}}(s)),void 0===a[a.length-1]&&a.pop();var l,u,d;-1!=(l=I.call(a,"require"))&&(a.splice(l,1),t||(a=a.concat(n(s.toString(),l)))),-1!=(u=I.call(a,"exports"))&&a.splice(u,1),-1!=(d=I.call(a,"module"))&&a.splice(d,1);var c=k();c.name=t&&(o.decanonicalize||o.normalize).call(o,t),c.deps=a,c.execute=i,o.pushRegister_({amd:!0,entry:c})}var o=this;t.call(this);var s=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/gm,i="(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])",l="\\\\s*\\\\(\\\\s*(\\"([^\\"]+)\\"|\'([^\']+)\')\\\\s*\\\\)",u=/\\(([^\\)]*)\\)/,c=/^\\s+|\\s+$/g,f={};a.amd={},d("reduceRegister_",function(e){return function(t,n){if(!n||!n.amd)return e.call(this,t,n);var r=t&&t.metadata,a=n.entry;if(r&&(r.format="amd"),a.name)r&&(r.entry||r.bundle?r.entry&&r.entry.name&&(r.entry=void 0):r.entry=a,r.bundle=!0),a.name in this.defined||(this.defined[a.name]=a);else{if(!r)throw new TypeError("Unexpected anonymous AMD define.");if(r.entry&&!r.entry.name)throw new Error("Multiple anonymous defines in module "+t.name);r.entry=a}}}),o.amdDefine=a,o.amdRequire=r}}),function(){var t=/(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*("[^"]+"\\s*,\\s*|\'[^\']+\'\\s*,\\s*)?\\s*(\\[(\\s*(("[^"]+"|\'[^\']+\')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*("[^"]+"|\'[^\']+\')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;d("instantiate",function(n){return function(r){var a=this;if("amd"==r.metadata.format||!r.metadata.format&&r.source.match(t))if(r.metadata.format="amd",a.builder||a.execute===!1)r.metadata.execute=function(){return r.metadata.builderExecute.apply(this,arguments)};else{var o=e.define;e.define=this.amdDefine;try{N.call(a,r)}finally{e.define=o}if(!r.metadata.entry&&!r.metadata.bundle)throw new TypeError("AMD module "+r.name+" did not define")}return n.call(a,r)}})}(),function(){function e(e,t){if(t){var n;if(e.pluginFirst){if(-1!=(n=t.lastIndexOf("!")))return t.substr(n+1)}else if(-1!=(n=t.indexOf("!")))return t.substr(0,n);return t}}function t(e,t){var n,r,a=t.lastIndexOf("!");return-1!=a?(e.pluginFirst?(n=t.substr(a+1),r=t.substr(0,a)):(n=t.substr(0,a),r=t.substr(a+1)||n.substr(n.lastIndexOf(".")+1)),{argument:n,plugin:r}):void 0}function n(e,t,n,r){return r&&".js"==t.substr(t.length-3,3)&&(t=t.substr(0,t.length-3)),e.pluginFirst?n+"!"+t:t+"!"+n}function r(e,t){return e.defaultJSExtensions&&".js"!=t.substr(t.length-3,3)}function a(a){return function(o,s,i){var l=this;s=e(this,s);var u=t(l,o);if(!u)return a.call(this,o,s,i);var d=l.normalizeSync(u.argument,s,!0),c=l.normalizeSync(u.plugin,s,!0);return n(l,d,c,r(l,u.argument))}}d("decanonicalize",a),d("normalizeSync",a),d("normalize",function(a){return function(o,s,i){var l=this;s=e(this,s);var u=t(l,o);return u?Promise.all([l.normalize(u.argument,s,!0),l.normalize(u.plugin,s)]).then(function(e){return n(l,e[0],e[1],r(l,u.argument))}):a.call(l,o,s,i)}}),d("locate",function(e){return function(t){var n,r=this,a=t.name;return r.pluginFirst?-1!=(n=a.indexOf("!"))&&(t.metadata.loader=a.substr(0,n),t.name=a.substr(n+1)):-1!=(n=a.lastIndexOf("!"))&&(t.metadata.loader=a.substr(n+1),t.name=a.substr(0,n)),e.call(r,t).then(function(e){return-1==n&&t.metadata.loader?r.normalize(t.metadata.loader,t.name).then(function(n){return t.metadata.loader=n,e}):e}).then(function(e){var n=t.metadata.loader;if(!n)return e;if(t.name==n)throw new Error("Plugin "+n+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");if(r.defined&&r.defined[a])return e;var o=r.pluginLoader||r;return o["import"](n).then(function(n){return t.metadata.loaderModule=n,t.address=e,n.locate?n.locate.call(r,t):e})})}}),d("fetch",function(e){return function(t){var n=this;return t.metadata.loaderModule&&t.metadata.loaderModule.fetch&&"defined"!=t.metadata.format?(t.metadata.scriptLoad=!1,t.metadata.loaderModule.fetch.call(n,t,function(t){return e.call(n,t)})):e.call(n,t)}}),d("translate",function(e){return function(t){var n=this;return t.metadata.loaderModule&&t.metadata.loaderModule.translate&&"defined"!=t.metadata.format?Promise.resolve(t.metadata.loaderModule.translate.call(n,t)).then(function(r){var a=t.metadata.sourceMap;if(a){if("object"!=typeof a)throw new Error("load.metadata.sourceMap must be set to an object.");var o=t.name.split("!")[0];a.file=o+"!transpiled",(!a.sources||a.sources.length<=1)&&(a.sources=[o])}return"string"==typeof r?t.source=r:g.call(this,"Plugin "+t.metadata.loader+" should return the source in translate, instead of setting load.source directly. This support will be deprecated."),e.call(n,t)}):e.call(n,t)}}),d("instantiate",function(e){return function(t){var n=this,r=!1;return t.metadata.loaderModule&&t.metadata.loaderModule.instantiate&&!n.builder&&"defined"!=t.metadata.format?Promise.resolve(t.metadata.loaderModule.instantiate.call(n,t,function(t){if(r)throw new Error("Instantiate must only be called once.");return r=!0,e.call(n,t)})).then(function(a){return r?a:(t.metadata.entry=k(),t.metadata.entry.execute=function(){return a},t.metadata.entry.deps=t.metadata.deps,t.metadata.format="defined",e.call(n,t))}):e.call(n,t)}})}(),function(){d("fetch",function(e){return function(t){var n=t.metadata.alias,r=t.metadata.deps||[];if(n){t.metadata.format="defined";var a=k();return this.defined[t.name]=a,a.declarative=!0,a.deps=r.concat([n]),a.declare=function(e){return{setters:[function(t){for(var n in t)e(n,t[n]);t.__useDefault&&(a.module.exports.__useDefault=!0)}],execute:function(){}}},""}return e.call(this,t)}})}(),function(){function e(e,t,n){for(var r,a=t.split(".");a.length>1;)r=a.shift(),e=e[r]=e[r]||{};r=a.shift(),r in e||(e[r]=n)}c(function(e){return function(){this.meta={},e.call(this)}}),d("locate",function(e){return function(t){var n,r=this.meta,a=t.name,o=0;for(var s in r)if(n=s.indexOf("*"),-1!==n&&s.substr(0,n)===a.substr(0,n)&&s.substr(n+1)===a.substr(a.length-s.length+n+1)){var i=s.split("/").length;i>o&&(o=i),h(t.metadata,r[s],o!=i)}return r[a]&&h(t.metadata,r[a]),e.call(this,t)}});var t=/^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*"[^"]+"\\s*;?|\\s*\'[^\']+\'\\s*;?)+/,n=/\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|"[^"]+"\\s*;?|\'[^\']+\'\\s*;?/g;d("translate",function(r){return function(a){var o=a.source.match(t);if(o)for(var s=o[0].match(n),i=0;i<s.length;i++){var l=s[i],u=l.length,d=l.substr(0,1);if(";"==l.substr(u-1,1)&&u--,\'"\'==d||"\'"==d){var c=l.substr(1,l.length-3),f=c.substr(0,c.indexOf(" "));if(f){var m=c.substr(f.length+1,c.length-f.length-1);"[]"==f.substr(f.length-2,2)?(f=f.substr(0,f.length-2),a.metadata[f]=a.metadata[f]||[],a.metadata[f].push(m)):a.metadata[f]instanceof Array?(g.call(this,"Module "+a.name+\' contains deprecated "deps \'+m+\'" meta syntax.\\nThis should be updated to "deps[] \'+m+\'" for pushing to array meta.\'),a.metadata[f].push(m)):e(a.metadata,f,m)}else a.metadata[c]=!0}}return r.call(this,a)}})}(),function(){c(function(e){return function(){e.call(this),this.depCache={}}}),d("locate",function(e){return function(t){var n=this,r=n.depCache[t.name];if(r)for(var a=0;a<r.length;a++)n["import"](r[a],t.name);return e.call(n,t)}})}(),D=new l,e.SystemJS=D,D.version="0.19.25 for SPFx","object"==typeof exports&&(module.exports=a),e.Reflect=e.Reflect||{},e.Reflect.Loader=e.Reflect.Loader||a,e.Reflect.global=e.Reflect.global||e,e.LoaderPolyfill=a,D||(D=new o,D.constructor=o),"object"==typeof exports&&(module.exports=D),e.System=D}("undefined"!=typeof self?self:global)}var t="undefined"==typeof Promise;if("undefined"!=typeof document){var n=document.getElementsByTagName("script");if($__curScript=n[n.length-1],t){var r=$__curScript.src,a=r.substr(0,r.lastIndexOf("/")+1);window.systemJSBootstrap=e,document.write(\'<script type="text/javascript" src="\'+a+\'system-polyfills.js"></script>\')}else e()}else if("undefined"!=typeof importScripts){var a="";try{throw new Error("_")}catch(o){o.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/,function(e,t){$__curScript={src:t},a=t.replace(/\\/[^\\/]*$/,"/")})}t&&importScripts(a+"system-polyfills.js"),e()}else $__curScript="undefined"!=typeof __filename?{src:__filename}:null,e()}();\r\n');
}.call(exports, (function() { return this; }())))

/***/ }),

/***/ "BBmw":
/*!************************************!*\
  !*** ./lib/error/SPLoaderError.js ***!
  \************************************/
/*! exports provided: SPLoaderErrorCode, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPLoaderErrorCode", function() { return SPLoaderErrorCode; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Error_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Error.resx */ "Z6P1");
/* harmony import */ var _loc_Common_resx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../loc/Common.resx */ "8N74");
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();



/*
 * sp-loader error codes.
 */
var SPLoaderErrorCode;
(function (SPLoaderErrorCode) {
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentMaxRetriesError"] = 0] = "loadComponentMaxRetriesError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentError"] = 1] = "loadComponentError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentReturnsEmptyError"] = 2] = "loadComponentReturnsEmptyError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentReturnsDefaultEmptyError"] = 3] = "loadComponentReturnsDefaultEmptyError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentDependencyError"] = 4] = "loadComponentDependencyError";
    SPLoaderErrorCode[SPLoaderErrorCode["manifestNotFoundError"] = 5] = "manifestNotFoundError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadPathDependencyBlockedByAnotherDependencyError"] = 6] = "loadPathDependencyBlockedByAnotherDependencyError";
    SPLoaderErrorCode[SPLoaderErrorCode["moduleHasUndeclaredDependencyError"] = 7] = "moduleHasUndeclaredDependencyError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadEntryPointError"] = 8] = "loadEntryPointError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadPathDependencyError"] = 9] = "loadPathDependencyError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadComponentDependencyFailoverPathError"] = 10] = "loadComponentDependencyFailoverPathError";
    SPLoaderErrorCode[SPLoaderErrorCode["loadScriptWithStringError"] = 11] = "loadScriptWithStringError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusLocalhostFileNotFoundError"] = 12] = "urlStatusLocalhostFileNotFoundError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusFileNotFoundError"] = 13] = "urlStatusFileNotFoundError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusForbiddenError"] = 14] = "urlStatusForbiddenError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusClientErrorError"] = 15] = "urlStatusClientErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusServerErrorError"] = 16] = "urlStatusServerErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusLocalhostNetworkErrorError"] = 17] = "urlStatusLocalhostNetworkErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusDocLibNetworkErrorError"] = 18] = "urlStatusDocLibNetworkErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusHttpsNetworkErrorError"] = 19] = "urlStatusHttpsNetworkErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusNetworkErrorError"] = 20] = "urlStatusNetworkErrorError";
    SPLoaderErrorCode[SPLoaderErrorCode["urlStatusUndefinedError"] = 21] = "urlStatusUndefinedError";
    SPLoaderErrorCode[SPLoaderErrorCode["failedToCreateGlobalVariable"] = 22] = "failedToCreateGlobalVariable";
    SPLoaderErrorCode[SPLoaderErrorCode["dependencyLoadError"] = 23] = "dependencyLoadError";
    SPLoaderErrorCode[SPLoaderErrorCode["missingPathDependencyError"] = 24] = "missingPathDependencyError";
})(SPLoaderErrorCode || (SPLoaderErrorCode = {}));
/**
 * sp-loader errors.
 *
 * @internal
 */
var SPLoaderError = /** @class */ (function (_super) {
    __extends(SPLoaderError, _super);
    function SPLoaderError(errorCode, innerError, isExpected) {
        var params = []; // tslint:disable-line:no-any
        for (var _i = 3 // tslint:disable-line:no-any
        ; _i < arguments.length // tslint:disable-line:no-any
        ; _i++ // tslint:disable-line:no-any
        ) {
            params[_i - 3] = arguments[_i]; // tslint:disable-line:no-any
        }
        var _this = _super.call(this, SPLoaderErrorCode[errorCode], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format.apply(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"], [SPLoaderError._errorCodeToMessageMap.get(errorCode)].concat(params))) || this;
        // Manually set the prototype, as we can no longer extend built-in classes like Error, Array, Map, etc
        // tslint:disable-next-line:max-line-length
        // [https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work](https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work)
        //
        // Note: the prototype must also be set on any classes which extend this one
        _this.__proto__ = SPLoaderError.prototype; // tslint:disable-line:no-any
        _this._loaderErrorCode = errorCode;
        _this.innerError = innerError;
        // If the inner error is expected, the error is expected.
        // Otherwise, look at the flag, or set the default to false.
        if (_this.innerError instanceof SPLoaderError) {
            _this._isExpected = _this.innerError.isExpected;
        }
        _this._isExpected = _this._isExpected || isExpected || false;
        return _this;
    }
    Object.defineProperty(SPLoaderError.prototype, "id", {
        /**
         * Error id.
         */
        get: function () {
            return this._loaderErrorCode;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPLoaderError.prototype, "category", {
        /**
         * Error category.
         */
        get: function () {
            return 'SPLoaderError';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPLoaderError.prototype, "isExpected", {
        /**
         * True if the error is an expected error.
         * This can happen when it's surfacing an error that happened in the loader,
         * or there is a transient network problem.
         */
        get: function () {
            return this._isExpected;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Error id to string map
     */
    SPLoaderError._errorCodeToMessageMap = new Map([
        [SPLoaderErrorCode.loadComponentMaxRetriesError, _loc_Common_resx__WEBPACK_IMPORTED_MODULE_2__["default"].loadComponentMaxRetriesError],
        [SPLoaderErrorCode.loadComponentError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadComponentError],
        [SPLoaderErrorCode.loadComponentReturnsEmptyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadComponentReturnsEmptyError],
        [SPLoaderErrorCode.loadComponentReturnsDefaultEmptyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadComponentReturnsDefaultEmptyError],
        [SPLoaderErrorCode.loadComponentDependencyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadComponentDependencyError],
        [SPLoaderErrorCode.manifestNotFoundError, _loc_Common_resx__WEBPACK_IMPORTED_MODULE_2__["default"].manifestNotFoundError],
        // tslint:disable-next-line:max-line-length
        [SPLoaderErrorCode.loadPathDependencyBlockedByAnotherDependencyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadPathDependencyBlockedByAnotherDependencyError],
        [SPLoaderErrorCode.moduleHasUndeclaredDependencyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].moduleHasUndeclaredDependencyError],
        [SPLoaderErrorCode.loadEntryPointError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadEntryPointError],
        [SPLoaderErrorCode.loadPathDependencyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadPathDependencyError],
        [SPLoaderErrorCode.loadComponentDependencyFailoverPathError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadComponentDependencyFailoverPathError],
        [SPLoaderErrorCode.loadScriptWithStringError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].loadScriptWithStringError],
        [SPLoaderErrorCode.urlStatusLocalhostFileNotFoundError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusLocalhostFileNotFoundError],
        [SPLoaderErrorCode.urlStatusFileNotFoundError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusFileNotFoundError],
        [SPLoaderErrorCode.urlStatusForbiddenError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusForbiddenError],
        [SPLoaderErrorCode.urlStatusClientErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusClientErrorError],
        [SPLoaderErrorCode.urlStatusServerErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusServerErrorError],
        [SPLoaderErrorCode.urlStatusLocalhostNetworkErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusLocalhostNetworkErrorError],
        // Note that the doclib error shows the standard network error message
        [SPLoaderErrorCode.urlStatusDocLibNetworkErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusNetworkErrorError],
        [SPLoaderErrorCode.urlStatusHttpsNetworkErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusHttpsNetworkErrorError],
        [SPLoaderErrorCode.urlStatusNetworkErrorError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusNetworkErrorError],
        [SPLoaderErrorCode.urlStatusUndefinedError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].urlStatusUndefinedError],
        [SPLoaderErrorCode.failedToCreateGlobalVariable, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].failedToCreateGlobalVariableError],
        [SPLoaderErrorCode.dependencyLoadError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].dependencyLoadError],
        [SPLoaderErrorCode.missingPathDependencyError, _Error_resx__WEBPACK_IMPORTED_MODULE_1__["default"].missingPathDependencyError]
    ] /* fix this typecast, VSO:397687 */);
    return SPLoaderError;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPError"]));
/* harmony default export */ __webpack_exports__["default"] = (SPLoaderError);


/***/ }),

/***/ "Edzh":
/*!***************************************!*\
  !*** ./lib/systemjs/normalizeName.js ***!
  \***************************************/
/*! exports provided: default, normalizeFailoverPathName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeFailoverPathName", function() { return normalizeFailoverPathName; });
/* harmony import */ var _utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/normalizeComponentId */ "jLfe");

/**
 * This is the base URL for components that will be sent to SystemJS.
 * SystemJS removes the base URL in order to get the right identifier.
 *
 * By having two different base URLs we can differentiate when we are importing components
 * and when it's an accidental import.
 */
var _componentBaseUrl = 'https://component-id.invalid/';
/**
 * Given a manifest, or a manifest and a name, normalizes the name for usage
 * in stores and SystemJS.
 *
 * This is used in order to support versioning for components, and uniquely
 * identify non-component dependencies.
 *
 * Current behavior:
 * Returns <manifestId>_<manifestVersion>.
 * If a name is provided returns the <manifestId>_<manifestVersion>/<name>.
 * It prepends 'https://component-id.invalid/' in order to make it an absolute URL.
 *
 * Final behavior:
 * For a manifest, normalized name will be <componentId>-<version>
 * If a name is provided, normalized name will be <componentId>-<version>-<name>
 */
function normalizeName(manifest, name) {
    if (name) {
        return _componentBaseUrl + [normalizeManifestId(manifest), name].join('/');
    }
    else {
        return _componentBaseUrl + normalizeManifestId(manifest);
    }
}
function normalizeManifestId(manifest) {
    return Object(_utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_0__["default"])(manifest.id, manifest.version);
}
/**
 * This is only used for components that have a failover path (so far, react and react-dom).
 * As the failover path is used when there is no component, they work via its name,
 * but as opposed to the 'path' dependencies, they are unique in SPFx, like a component.
 *
 * They return the name directly, prepended by the component base URL.
 */
function normalizeFailoverPathName(name) {
    return _componentBaseUrl + name;
}


/***/ }),

/***/ "Eke5":
/*!*************************************!*\
  !*** ./lib/stores/ManifestStore.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _debug_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../debug/confirmDebugAllowed */ "MqKS");
/* harmony import */ var _utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utilities/normalizeComponentId */ "jLfe");
/* harmony import */ var _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utilities/componentConstants */ "kd3Z");
/* harmony import */ var _Stores_resx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Stores.resx */ "dJ1A");
/* harmony import */ var _loc_Common_resx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../loc/Common.resx */ "8N74");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file ManifestStore.ts
 */








/**
 * This class maintains a cache of the manifests on the current page.
 *
 * @internal
 */
var ManifestStore = /** @class */ (function () {
    function ManifestStore() {
        /**
         * Map from component id to array of manifest store indexes.
         * This allows to store manifests for different versions of the same component.
         *
         * @remarks
         * Example: `'d1d91016-032f-456d-98a4-721247c305e8' -->[ Version(1.0.0), Version(2.0.0) ]`
         */
        this._manifestVersions = new Map();
        /**
         * Map from manifest store index string to manifest store entry.
         * Manifest store index is generated through logic in utilities/normalizeComponentId (`<id>_<version>`)
         * e.g. `'d1d91016-032f-456d-98a4-721247c305e8_1.0.0' --> { ManifestStoreEntry }`
         */
        this._manifests = new Map();
        /**
         * Set of all the component ids that have their manifest pinned.
         * If a component id has its manifest pinned, no other manifest can be added for that component id,
         * regardless of version or debug manifest.
         *
         * @remarks
         *
         * Example: `{ '1c6c9123-7aac-41f3-a376-3caea41ed83f', '7263c7d0-1d6a-45ec-8d85-d4d1d234171b' }`
         */
        this._pinnedManifests = new Set();
    }
    Object.defineProperty(ManifestStore, "instance", {
        get: function () {
            if (!this._instance) {
                this._instance = new ManifestStore();
            }
            return this._instance;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Register the preloaded manifests on the manifest store.
     *
     * @param preloadedData - The preloaded data
     */
    ManifestStore.prototype.registerPreloadedManifests = function (preloadedData) {
        if (preloadedData && preloadedData.manifests && preloadedData.manifests.length) {
            this.registerManifests(preloadedData.manifests, true);
        }
        /* tslint:disable-next-line:no-any */
        var globalManifests = window.g_webPartManifests;
        if (globalManifests && globalManifests.length) {
            this.registerManifests(globalManifests, true);
        }
    };
    /**
     * Register debug manifests on the manifest store.
     *
     * @param manifests - A dictionary of debug manifests.
     */
    ManifestStore.prototype.registerDebugManifests = function (manifests) {
        if (manifests) {
            for (var _i = 0, manifests_1 = manifests; _i < manifests_1.length; _i++) {
                var manifest = manifests_1[_i];
                this._addDebugManifest(manifest);
            }
        }
    };
    /**
     * Return a manifest by its component id and version.
     *
     * @remarks
     * If version is not provided, it will return the only available version. If more than
     * one version is available and version is not provided, returns undefined.
     *
     * Only return a debug manifest is debug is allowed. If a manifest isn't found by
     * the provided id, return undefined.
     *
     * @param id        - The component id of the manifest to retrieve.
     * @param version   - The version of the component of the manifest to retrieve.
     * @param shouldLog - True if failures should be logged. Defaults to true.
     * @returns           The retrieved manifest, or undefined if one could not be found.
     */
    ManifestStore.prototype.tryGetManifest = function (id, version, shouldLog) {
        if (shouldLog === void 0) { shouldLog = true; }
        try {
            return this._getManifest(id, version, shouldLog);
        }
        catch (e) {
            return undefined;
        }
    };
    /**
     * Return a manifest by its component id and version.
     *
     * @remarks
     * If version is not provided, it will return the only available version. If more than
     * one version is available and version is not provided, the function throws.
     *
     * Only return a debug manifest is debug is allowed. If a manifest isn't found by
     * the provided id, the function throws.
     *
     * @param id      - The component id of the manifest to retrieve.
     * @param version - The version of the component of the manifest to retrieve.
     * @returns         The retrieved manifest, or undefined if one could not be found.
     */
    ManifestStore.prototype.getManifest = function (id, version) {
        return this._getManifest(id, version, true);
    };
    /**
     * Get all registered manifests.
     *
     * @returns The registered manifests.
     */
    ManifestStore.prototype.getRegisteredManifests = function () {
        var _this = this;
        var result = [];
        this._manifests.forEach(function (manifestEntry) {
            var manifest = _this._getManifestFromStoreEntry(manifestEntry);
            if (manifest) {
                result.push(manifest);
            }
        });
        return result;
    };
    /**
     * Removes all manifests that are not considered essential, and registers all the manifests passed as input.
     * Essential manifests are assembly-related manifest, and debug manifests.
     *
     * @param manifests - Manifests to add.
     */
    ManifestStore.prototype.replaceManifests = function (manifests) {
        this._removeAllManifests();
        this.registerManifests(manifests, false);
    };
    /**
     * Returns a map of manifest IDs to manifests.
     *
     * @returns A map of manifest IDs to manifests.
     */
    ManifestStore.prototype._getManifestMap = function () {
        return this._manifests;
    };
    /**
     * Loads additional manifests into the manifest store, updating existing manifests.
     *
     * @param manifests - The manifests to load into the store.
     */
    ManifestStore.prototype.registerManifests = function (manifests, overwriteExisting) {
        var _this = this;
        manifests.forEach(function (manifest) { return _this._addManifest(manifest, overwriteExisting); });
    };
    /**
     * Pins the manifest for a specific component id.
     * That means that no other manifest can be added for the specified component id.
     *
     * @remarks
     * This is used by assemblies to ensure that debug manifests are not replacing components already in use.
     *
     * @param componentId - Component id with only one manifest, which will be pinned.
     */
    ManifestStore.prototype._pinManifest = function (componentId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(componentId, 'componentId');
        this._pinnedManifests.add(componentId);
    };
    /**
     * Given a component id and version, requests its manifest (and all its dependencies) to SharePoint
     * through a REST API.
     * @param id - Id of the requested component
     * @param version - Optional. Version of the requested component
     * @returns Promise with the requested manifest. Rejects the promise if the manifest was not found.
     */
    ManifestStore.prototype.requestManifest = function (id, version) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(this._manifestProvider, 'manifestProvider');
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["manifestStoreLogSource"], "Requesting manifest with id: \"" + id + "\" and version: \"" + version + "\"");
        return this._manifestProvider.tryGetManifest(id, version).then(function (manifests) {
            _this.registerManifests(manifests, false);
            // This will reject the promise if the manifest is not present
            return _this.getManifest(id, version);
        }).catch(function (error) {
            throw new Error(_this._getManifestNotFoundErrorMessage(id, version));
        });
    };
    /**
     * Given a component id and version, requests its manifest (and all its dependencies) to SharePoint
     * through a REST API.
     * @param ids - List of ids and (optionally) versions of the manifests to request.
     * @returns Promise with the requested manifests. Rejects the promise if the manifest was not found.
     */
    ManifestStore.prototype.requestManifests = function (ids) {
        var _this = this;
        var retVal = [];
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(this._manifestProvider, 'manifestProvider');
        return this._manifestProvider.tryGetManifests(ids).then(function (manifests) {
            _this.registerManifests(manifests, false);
            // This will reject the promise if any of the manifests is not present
            ids.forEach(function (id) {
                retVal.push(_this.getManifest(id.id, id.version));
            });
            return retVal;
        });
    };
    /**
     * Sets the manifest provider.
     * This is used to request manifests in the server if they are not found in the manifest store.
     *
     * @remarks
     * This must be set once by SPApplicationLoader. If it is called more than once it does nothing.
     */
    ManifestStore.prototype._setManifestProvider = function (manifestProvider) {
        if (!this._manifestProvider) {
            this._manifestProvider = manifestProvider;
        }
    };
    ManifestStore.prototype._isManifestPinned = function (componentId) {
        return this._pinnedManifests.has(componentId);
    };
    ManifestStore.prototype._removeAllManifests = function () {
        var _this = this;
        this._manifests.forEach(function (manifestEntry) { return _this._removeManifest(manifestEntry.id, manifestEntry.version); });
    };
    /**
     * Removes a manifest from the manifest store based on its id.
     * If it's a pinned manifest or a debug manifest it will skip it.
     *
     * @param id - Id of the manifest to remove.
     * @param version - Version of the manifest to remove.
     * @returns true if the manifest was removed.
     */
    ManifestStore.prototype._removeManifest = function (id, version) {
        if (this._pinnedManifests.has(id)) {
            return false;
        } // If it's a pinned manifest, it should not be removed
        // React 16 Rollout - NavigationOrchestrator.navigate replaces all manifests. The use case with React 15/16 breaks
        // because React 15 *may* not come from the server preloaded data
        if (id === _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_5__["reactComponentId"] || id === _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_5__["reactDomComponentId"]) {
            return false;
        }
        var versionObj = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Version"].parse(version);
        var index = this._createIndex(id, versionObj);
        var entry = this._manifests.get(index);
        if (!entry) {
            return false;
        } // If there is no entry, nothing gets removed
        if (entry.debugManifest) {
            return false;
        } // If this is a debug manifest, don't remove it
        this._manifests.delete(index);
        if (this._manifestVersions.get(id).length === 1) { // Only one version. Remove the reference to the id.
            this._manifestVersions.delete(id);
        }
        else { // More than one version. Remove only the specific version.
            this._manifestVersions.set(id, this._manifestVersions.get(id).filter(function (v) { return !v.equals(versionObj); }));
        }
        return true;
    };
    /**
     * Internal implementation of `getManifest` that toggles whether failures should be logged or not.
     */
    ManifestStore.prototype._getManifest = function (id, version, shouldLog) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(id, 'id');
        var index = this._getExistingIndex(id, version);
        if (!index) {
            var errorMessage = this._getManifestNotFoundErrorMessage(id, version);
            if (shouldLog) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["manifestStoreLogSource"], errorMessage);
            }
            throw new Error(errorMessage);
        }
        // after here, the compiler will assume index != undefined
        var manifestEntry = this._manifests.get(index);
        if (manifestEntry) {
            var manifest = this._getManifestFromStoreEntry(manifestEntry);
            if (manifest) {
                return manifest;
            }
        }
        throw new Error(this._getManifestNotFoundErrorMessage(id, version));
    };
    ManifestStore.prototype._getManifestNotFoundErrorMessage = function (id, version) {
        if (!version) {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_6__["default"].manifestNotFoundByIdError, id);
        }
        else {
            return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_loc_Common_resx__WEBPACK_IMPORTED_MODULE_7__["default"].manifestNotFoundError, id, version);
        }
    };
    ManifestStore.prototype._getManifestFromStoreEntry = function (manifestEntry) {
        var allowDebug = Object(_debug_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_3__["peekDebugAllowed"])({ manifestsRequested: true, loaderRequested: false });
        if (manifestEntry) {
            if (allowDebug && manifestEntry.debugManifest) {
                return manifestEntry.debugManifest;
            }
            else {
                return manifestEntry.manifest;
            }
        }
        else {
            return undefined;
        }
    };
    ManifestStore.prototype._addManifest = function (manifest, overwriteExisting) {
        this._internalAddManifest(manifest, false, overwriteExisting);
    };
    ManifestStore.prototype._addDebugManifest = function (manifest) {
        this._internalAddManifest(manifest, true);
    };
    ManifestStore.prototype._internalAddManifest = function (manifest, isDebug, overwriteExisting) {
        // If a manifest is pinned, no other manifest for the same component id can be added
        if (this._isManifestPinned(manifest.id)) {
            return;
        }
        // Pin all internal manifests so third parties cannot override them.
        // This behavior is disabled when the debugging flight is enabled, for internal development.
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isDebugFlightEnabled && manifest.isInternal
            // React has an internal manifest but it can have multiple versions at the same time
            && manifest.id !== _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_5__["reactComponentId"] && manifest.id !== _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_5__["reactDomComponentId"]) {
            this._pinManifest(manifest.id);
        }
        if (isDebug) {
            manifest._isDebug = true;
        }
        var index = this._getExistingIndex(manifest.id, manifest.version);
        var existingEntry = index ? this._manifests.get(index) : undefined;
        if (existingEntry) {
            if (isDebug) {
                existingEntry.debugManifest = manifest;
            }
            else {
                if (overwriteExisting || !existingEntry.manifest) {
                    existingEntry.manifest = manifest;
                }
            }
        }
        else {
            this._addManifestToVersionsMap(manifest);
            var newIndex = this._createIndexFromManifest(manifest);
            this._manifests.set(newIndex, {
                id: manifest.id,
                version: manifest.version,
                manifest: isDebug ? undefined : manifest,
                debugManifest: isDebug ? manifest : undefined
            });
        }
    };
    /**
     * Adds the manifest to the versions map.
     *
     * If the component id is not present in the map, adds a new entry in the map.
     * If the id and version are already present, it does nothing.
     */
    ManifestStore.prototype._addManifestToVersionsMap = function (manifest) {
        var version = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Version"].parse(manifest.version);
        if (!this._manifestVersions.has(manifest.id)) {
            this._manifestVersions.set(manifest.id, [version]);
        }
        else {
            var versions = this._manifestVersions.get(manifest.id);
            for (var _i = 0, versions_1 = versions; _i < versions_1.length; _i++) {
                var existingVersion = versions_1[_i];
                if (existingVersion.equals(version)) {
                    return; // early return
                }
            }
            this._manifestVersions.set(manifest.id, versions.concat(version));
        }
    };
    /**
     * Returns the index for a component id and version.
     * The index might not be for the same version, but a compatible one.
     *
     * If an index is not found, returns undefined.
     * If an index is request without a version, and there are multiple versions,
     * returns an error.
     * If more than one compatible version is found, an error is logged and
     * returns the highest compatible version.
     */
    ManifestStore.prototype._getExistingIndex = function (id, versionString) {
        if (!versionString) {
            return this._getUniqueManifestStoreIndex(id);
        }
        if (this._manifestVersions.has(id)) {
            var versions = this._manifestVersions.get(id);
            var version_1 = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Version"].parse(versionString);
            var validVersions = versions.filter(function (currentVersion) { return currentVersion.satisfies(version_1); });
            if (!validVersions || validVersions.length < 1) {
                return undefined;
            }
            else if (validVersions.length === 1) {
                return this._createIndex(id, validVersions[0]);
            }
            else { // if (validVersions.length > 1)
                // If there is a debug manifest, use that one. Otherwise log error.
                var debugIndex = this._findDebugIndex(id, validVersions);
                if (debugIndex) {
                    return debugIndex;
                }
                else {
                    var error = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_6__["default"].tooManyCompatibleVersionsError, validVersions.length, validVersions.join(', '), id, versionString));
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["manifestStoreLogSource"], error);
                    // Sort by greatest version first, and return the first version
                    var returnVersion = validVersions.sort(function (version1, version2) {
                        return -1 * _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Version"].compare(version1, version2);
                    })[0];
                    return this._createIndex(id, returnVersion);
                }
            }
        }
        return undefined;
    };
    /**
     * Gets the manifest store index for a component id without version.
     *
     * If no version is found for the id, returns undefined.
     * If there are too many manifests for the component id, logs an error and returns undefined.
     */
    ManifestStore.prototype._getUniqueManifestStoreIndex = function (id) {
        var versions = this._manifestVersions.get(id);
        if (!versions || versions.length < 1) {
            return undefined;
        }
        else if (versions.length === 1) {
            return this._createIndex(id, versions[0]);
        }
        else { // if (versions.length > 1)
            // If there is a debug manifest, use that one. Otherwise log error.
            var debugIndex = this._findDebugIndex(id, versions);
            if (debugIndex) {
                return debugIndex;
            }
            else {
                var error = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_6__["default"].tooManyManifestsError, versions.length, versions.join(', '), id));
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["manifestStoreLogSource"], error);
                return undefined;
            }
        }
    };
    ManifestStore.prototype._createIndexFromManifest = function (manifest) {
        return this._createIndex(manifest.id, _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Version"].parse(manifest.version));
    };
    ManifestStore.prototype._createIndex = function (id, version) {
        return Object(_utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_4__["default"])(id, version.toString());
    };
    ManifestStore.prototype._findDebugIndex = function (id, versions) {
        var _this = this;
        return versions.reduce(function (previous, validVersion) {
            var index = _this._createIndex(id, validVersion);
            var manifestStoreEntry = _this._manifests.get(index);
            if (manifestStoreEntry && manifestStoreEntry.debugManifest) {
                return index;
            }
            else {
                return previous;
            }
        }, undefined);
    };
    return ManifestStore;
}());
/* harmony default export */ __webpack_exports__["default"] = (ManifestStore);


/***/ }),

/***/ "F+Lb":
/*!************************************!*\
  !*** ./lib/stores/AddressStore.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// Copyright (c) Microsoft. All rights reserved.
/**
 * Stores the address for each module by its normalized name.
 * This is used for SystemJS to know how to locate each module.
 */
var AddressStore = /** @class */ (function () {
    function AddressStore() {
        /**
         * Map from normalized name to address
         */
        this._addressMap = new Map();
        this._reverseAddressMap = new Map();
    }
    Object.defineProperty(AddressStore, "instance", {
        get: function () {
            if (!AddressStore._instance) {
                AddressStore._instance = new AddressStore();
            }
            return AddressStore._instance;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns an address for a module, given its normalized name.
     * @param normalizedName - Normalized name
     */
    AddressStore.prototype.tryGetAddress = function (normalizedName) {
        return this._addressMap.get(normalizedName);
    };
    /**
     * Returns the normalized name for a given address.
     * If the address hasn't been set in the AddressStore, it returns undefined
     * @param address - Address
     */
    AddressStore.prototype.getNormalizedName = function (address) {
        if (this._reverseAddressMap.has(address)) {
            return this._reverseAddressMap.get(address);
        }
        else {
            return undefined;
        }
    };
    /**
     * Set a mapping from a module's normalized name to the module address.
     *
     * @remarks
     * If the address has been set for a previous module's normalized name, when searching for that address
     * the original module's normalized name will be returned.
     * @param normalizedName - Module normalized name
     * @param address - Module address
     */
    AddressStore.prototype.set = function (normalizedName, address) {
        // Multiple normalized names can point to the same address
        if (!this._addressMap.has(normalizedName)) {
            this._addressMap.set(normalizedName, address);
        }
        // An address can point only to one normalized name
        // For implementation purposes, this is the first one that is registered
        // RequireJsLoader.configure handles this case
        if (!this._reverseAddressMap.has(address)) {
            this._reverseAddressMap.set(address, normalizedName);
        }
    };
    return AddressStore;
}());
/* harmony default export */ __webpack_exports__["default"] = (AddressStore);


/***/ }),

/***/ "FcGP":
/*!*************************************!*\
  !*** ./lib/starter/Starter.resx.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_C14mR9Diz4DseFaa7aiq6A';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "GV8Z":
/*!***********************************!*\
  !*** ./lib/debug/DebugManager.js ***!
  \***********************************/
/*! exports provided: DebugManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugManager", function() { return DebugManager; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./confirmDebugAllowed */ "MqKS");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../stores/ManifestStore */ "Eke5");
/* harmony import */ var _showDebugError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showDebugError */ "AtZb");
/* harmony import */ var _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DebugManager.resx */ "cLCj");





/**
 * Put debug data in a session variable so it gets cleared when the browser or tab is closed.
 */
var SPFX_DEBUG_SESSION_VAR_ID = 'spfx-debug';
/**
 * The ?debugManifestsFile query parameter
 */
var DEBUG_MANIFESTS_FILE_QUERY_PARAM_NAME = 'debugManifestsFile';
/**
 * The ?loader query parameter. This is replacing the ?moduleLoader query parameter
 */
var LOADER_QUERY_PARAM_NAME = 'loader';
/**
 * Resets the debug state. Mutually exclusive to all other debug parameters.
 */
var RESET_QUERY_PARAM_NAME = 'reset';
var LOADER_EXPORTS_NAME = 'spModuleLoader';
var EMPTY_DEBUG_LOAD_RESULT = {
    debugLoader: undefined,
    debugManifests: undefined,
    registerAsNonDebug: false
};
/**
 * Provides APIs to manage debug scripts.
 *
 * This is used in order to provide security measures before running arbitrary code, and to provide
 * improved debugging experience when a debug loader is used.
 *
 * @internal
 */
var DebugManager = /** @class */ (function () {
    function DebugManager() {
    }
    /**
     * Checks if debug scripts are requested.
     * This method is the first thing called after flights are initialized in SPStarter.start() and should not be called
     * anywhere else.
     *
     * The following cases are supported (in order):
     *  - If the ?reset query parameter is present, clear the debug data and load the page normally.
     *  - If there is SPFX Debug session data containing the testMode property, load the scripts specified in the
     *      session data and return the debug loader and/or manifests. This case is only used for integration tests. The
     *      session data will get set externally by the test harness.
     *  - If the ?loader and/or the ?debugManifestsFile query parameter is present, prompt for
     *      consent and, if consent is granted, load the scripts, record the URLs in the SPFX Debug session data, and
     *      return the debug loader and/or manifests.
     *  - If there is SPFX Debug session data containing a loader URL and/or a manifests file URL, prompt for consent and,
     *      if consent is granted, load the scripts and return the debug loader and/or debug manifests.
     *  - In all other cases, return with no debug loader or manifests.
     *
     * @param componentLoader - The component loader to use to load debug scripts.
     * @param debugData - If defined, the currently executing loader is already a debug loader and the
     *  specified debug data was loaded by the non-debug loader. If the currently executing loader is already a debug
     *  loader, just set these manifests in the manifest store and return.
     *
     * @returns Promise optionally resolving to a debug loader.
     */
    DebugManager.initialize = function (componentLoader, debugData) {
        if (debugData) {
            Object(_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_1__["dangerouslyEnableDebug"])();
            DebugManager._registerManifests(debugData.debugManifests || [], debugData.registerAsNonDebug);
            return Promise.resolve(EMPTY_DEBUG_LOAD_RESULT);
        }
        if (!DebugManager._initializationPromise) {
            var spfxDebugSessionVarData_1 = {};
            var isSpfxDebugEnabled = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isDebugFlightEnabled;
            var queryParameters = new URL(window.location.href).searchParams;
            try {
                spfxDebugSessionVarData_1 = JSON.parse(sessionStorage.getItem(SPFX_DEBUG_SESSION_VAR_ID) || '{}');
            }
            catch (e) {
                // Error parsing session data. Assume there is no debug session data.
            }
            DebugManager._initializationPromise = DebugManager._handleDebugParameters(componentLoader, spfxDebugSessionVarData_1, queryParameters, isSpfxDebugEnabled).then(function (debugLoadResult) {
                // Always re-save the session data before continuing
                spfxDebugSessionVarData_1.loaderUrl = DebugManager._debugLoaderUrl;
                spfxDebugSessionVarData_1.manifestsFileUrl = DebugManager._debugManifestsFileUrl;
                try {
                    var serializedDebugSessionData = JSON.stringify(spfxDebugSessionVarData_1);
                    if (serializedDebugSessionData !== '{}') {
                        sessionStorage.setItem(SPFX_DEBUG_SESSION_VAR_ID, serializedDebugSessionData);
                    }
                    else {
                        sessionStorage.removeItem(SPFX_DEBUG_SESSION_VAR_ID);
                    }
                }
                catch (e) {
                    // If we get an error saving the debug session data, don't interrupt the rest of the initialization flow
                }
                return debugLoadResult;
            });
        }
        return DebugManager._initializationPromise;
    };
    DebugManager.loadAndRegisterManifestsFile = function (componentLoader, manifestsFileUrl, registerAsNonDebug) {
        return componentLoader.loadScript(manifestsFileUrl).then(function (manifestScript) {
            var manifests = manifestScript.getManifests();
            DebugManager._registerManifests(manifests, registerAsNonDebug);
            return manifests;
        });
    };
    DebugManager._handleDebugParameters = function (componentLoader, spfxDebugSessionVarData, queryParameters, isSpfxDebugEnabled) {
        return new Promise(function (resolve) {
            if (queryParameters.get(RESET_QUERY_PARAM_NAME) !== null) {
                // The ?reset query parameter is present, clear the debug data and load the page normally.
                spfxDebugSessionVarData.testMode = undefined;
                sessionStorage.removeItem(SPFX_DEBUG_SESSION_VAR_ID);
                resolve(EMPTY_DEBUG_LOAD_RESULT);
            }
            else if (isSpfxDebugEnabled && spfxDebugSessionVarData.testMode) {
                // The test mode session property is set
                Object(_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_1__["dangerouslyEnableDebug"])();
                DebugManager._debugManifestsFileUrl = spfxDebugSessionVarData.manifestsFileUrl;
                DebugManager._debugLoaderUrl = spfxDebugSessionVarData.loaderUrl;
                DebugManager._getDebugScripts(componentLoader, resolve, /* registerAsNonDebug */ false);
            }
            else {
                // We aren't in test mode, so keep going with the normal debug loader flow
                DebugManager._handleNonTestModeDebugParameters(componentLoader, spfxDebugSessionVarData, queryParameters, isSpfxDebugEnabled, resolve);
            }
        });
    };
    DebugManager._handleNonTestModeDebugParameters = function (componentLoader, spfxDebugSessionVarData, queryParameters, isSpfxDebugEnabled, resolve) {
        var debugManifestsFileUrl = queryParameters.get(DEBUG_MANIFESTS_FILE_QUERY_PARAM_NAME) ||
            spfxDebugSessionVarData.manifestsFileUrl ||
            undefined;
        var debugLoaderUrl = isSpfxDebugEnabled
            ? (queryParameters.get(LOADER_QUERY_PARAM_NAME) || spfxDebugSessionVarData.loaderUrl || undefined)
            : undefined;
        if (debugLoaderUrl || debugManifestsFileUrl) {
            Object(_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_1__["confirmDebugAllowed"])({
                loaderRequested: !!debugLoaderUrl,
                manifestsRequested: !!debugManifestsFileUrl
            }).then(function (allowed) {
                if (allowed) {
                    // Save the debug URLs onto the DebugManager's state so they will be written to the debug
                    // session data
                    DebugManager._debugLoaderUrl = debugLoaderUrl;
                    DebugManager._debugManifestsFileUrl = debugManifestsFileUrl;
                    DebugManager._getDebugScripts(componentLoader, resolve, /* registerAsNonDebug */ false);
                }
                else {
                    resolve(EMPTY_DEBUG_LOAD_RESULT);
                }
            }).catch(console.error);
        }
        else {
            // No debug scripts requested.
            resolve(EMPTY_DEBUG_LOAD_RESULT);
        }
    };
    DebugManager._getDebugScripts = function (componentLoader, resolve, registerAsNonDebug) {
        var loaderUrl = DebugManager._debugLoaderUrl;
        var manifestFileUrl = DebugManager._debugManifestsFileUrl;
        var debugLoaderPromise = loaderUrl
            ? DebugManager._loadLoader(componentLoader, loaderUrl)
            : Promise.resolve(undefined);
        var debugManifestsFilePromise = manifestFileUrl
            ? DebugManager.loadAndRegisterManifestsFile(componentLoader, manifestFileUrl, registerAsNonDebug)
            : Promise.resolve(undefined);
        // Wrap errors so we know where the error came from
        debugLoaderPromise = debugLoaderPromise.catch(function (error) {
            throw { errorSource: 'loader', error: error };
        });
        debugManifestsFilePromise = debugManifestsFilePromise.catch(function (error) {
            throw { errorSource: 'manifestsFile', error: error };
        });
        Promise.all([debugLoaderPromise, debugManifestsFilePromise])
            .then(function (_a) {
            var debugLoader = _a[0], debugManifests = _a[1];
            resolve({ debugLoader: debugLoader, debugManifests: debugManifests, registerAsNonDebug: registerAsNonDebug });
        })
            .catch(function (error) {
            if (error instanceof Error) {
                Object(_showDebugError__WEBPACK_IMPORTED_MODULE_3__["default"])(error, _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugScriptUnknown, _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingUnknownTitle).catch(console.error);
            }
            else {
                var errorText = _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugScriptUnknown;
                var title = _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingUnknownTitle;
                switch (error.errorSource) {
                    case 'loader':
                        errorText = DebugManager._getUrlErrorText(loaderUrl || '', LOADER_QUERY_PARAM_NAME);
                        title = _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugLoaderTitle;
                        break;
                    case 'manifestsFile':
                        errorText = DebugManager._getUrlErrorText(manifestFileUrl || '', DEBUG_MANIFESTS_FILE_QUERY_PARAM_NAME);
                        title = _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugManifestTitle;
                        break;
                }
                Object(_showDebugError__WEBPACK_IMPORTED_MODULE_3__["default"])(error.error, errorText, title).catch(console.error);
            }
        });
    };
    DebugManager._loadLoader = function (componentLoader, loaderUrl) {
        // This deletes the variable window.spModuleLoader created by the assembly
        delete window[LOADER_EXPORTS_NAME];
        // Delete all existing webpackJsonp globals before loading a new assembly
        for (var _i = 0, _a = Object.keys(window); _i < _a.length; _i++) {
            var globalName = _a[_i];
            if (globalName.match(/^webpackJsonp/i)) {
                delete window[globalName];
            }
        }
        return componentLoader.loadScript(loaderUrl, { globalExportsName: LOADER_EXPORTS_NAME });
    };
    DebugManager._getUrlErrorText = function (url, paramName) {
        var isMalformed = !url.match(/^https?\:\/\//);
        var isHttps = !isMalformed && !!url.match(/^https/);
        return isMalformed
            ? _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugScriptMalformed, url)
            : _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(isHttps ? _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugScriptHTTPS : _DebugManager_resx__WEBPACK_IMPORTED_MODULE_4__["default"].errorLoadingDebugScriptHTTP, paramName);
    };
    DebugManager._registerManifests = function (manifests, registerAsNonDebug) {
        if (registerAsNonDebug) {
            _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.registerManifests(manifests, false);
        }
        else {
            _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.registerDebugManifests(manifests);
        }
    };
    return DebugManager;
}());



/***/ }),

/***/ "H/UD":
/*!**********************************************************************************************!*\
  !*** ./lib/DeveloperTools/BrowserDeveloperToolsWarning/BrowserDeveloperToolsWarning.resx.js ***!
  \**********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_fwMQe6Xe08yEeCPNxngd+g';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "HLbO":
/*!***************************************!*\
  !*** ./lib/utilities/KillSwitches.js ***!
  \***************************************/
/*! exports provided: KillSwitches */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KillSwitches", function() { return KillSwitches; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */

var KillSwitches = /** @class */ (function () {
    function KillSwitches() {
    }
    KillSwitches.isDangerouslyEnableDebugKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('e0187f01-1210-45a0-9865-716fedd0630a'), '07/17/19', 'Enable debug when using debug loader');
    };
    KillSwitches.isRequireJSKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('75a2ce70-9731-4020-8b9f-9920bb5a036e'), '11/6/2019', 'Use requirejs instead of systemjs to load');
    };
    return KillSwitches;
}());



/***/ }),

/***/ "IG7x":
/*!****************************************************!*\
  !*** ./lib/DeveloperTools/DeveloperToolsLoader.js ***!
  \****************************************************/
/*! exports provided: initialize, registerDeveloperToolsTab, toggleDeveloperTools */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerDeveloperToolsTab", function() { return registerDeveloperToolsTab; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toggleDeveloperTools", function() { return toggleDeveloperTools; });
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file DeveloperToolsLoader.ts
 */
var F12_KEYCODE = 123;
var MAC_PLATFORM_IDENTIFIER = 'MacIntel';
var _listenerHasBeenRegistered = false;
var _developerTools;
var _developerToolsTabsBacklog = [];
function initialize() {
    if (!_listenerHasBeenRegistered) {
        document.documentElement.addEventListener('keydown', function (event) {
            var isMac = navigator.platform === MAC_PLATFORM_IDENTIFIER;
            // Detect ctrl+F12 for any platform, and detect ⌘+F12 on macs
            if (((event.ctrlKey && !event.metaKey) || (isMac && event.metaKey && !event.ctrlKey)) &&
                !event.altKey &&
                event.keyCode === F12_KEYCODE) {
                // ctrl+F12
                toggleDeveloperTools();
                event.preventDefault();
            }
        });
        _listenerHasBeenRegistered = true;
    }
}
/**
 * Registers a tab in the developer tools. The developer tools are invoked by pressing "CTRL+F12".
 *
 * @param developerToolsTab - The tab definition.
 *
 * @internal
 */
function registerDeveloperToolsTab(developerToolsTab) {
    if (_developerTools) {
        _developerTools.registerDeveloperToolsTab(developerToolsTab);
    }
    else {
        _developerToolsTabsBacklog.push(developerToolsTab);
    }
}
/**
 * Shows/hides the developer tools panel.
 *
 * @internal
 */
function toggleDeveloperTools() {
    if (_developerTools) {
        _developerTools.toggleDeveloperTools();
    }
    else {
        // tslint:disable-next-line:no-require-ensure (this code doesn't support the import(...) pattern)
        Promise.all(/*! require.ensure | developer-tools */[__webpack_require__.e("vendors~debug-prompt-components~developer-tools"), __webpack_require__.e("vendors~developer-tools"), __webpack_require__.e("developer-tools")]).then((function (require) {
            _initializeDeveloperTools(__webpack_require__(/*! ./DeveloperTools */ "PVnk").default);
        }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
    }
}
function _initializeDeveloperTools(developerToolsClass) {
    _developerTools = developerToolsClass.instance;
    _developerTools.initialize();
    _developerToolsTabsBacklog.forEach(function (developerToolsTab) {
        _developerTools.registerDeveloperToolsTab(developerToolsTab);
    });
    _developerTools.showHideDeveloperTools(true);
}


/***/ }),

/***/ "Inam":
/*!****************************************!*\
  !*** ./lib/systemjs/SystemsJs.resx.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_a4wKXyUGuAbOcWmuhzMXpg';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "JWqh":
/*!*****************************************!*\
  !*** ./lib/utilities/BrowserSupport.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utilities.resx */ "lcN8");


var BrowserSupport = /** @class */ (function () {
    function BrowserSupport() {
    }
    BrowserSupport.getBrowserCompatibility = function () {
        var browserInfo = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_BrowserDetection"].getBrowserInformation();
        // IE9 (and older versions) are unreliable and Pages doesn't work properly
        if (browserInfo.browser === 4 /* IE */ &&
            browserInfo.browserVersion && browserInfo.browserVersion.major <= 9) {
            return {
                supportLevel: 3 /* Blocked */,
                warning: _Utilities_resx__WEBPACK_IMPORTED_MODULE_1__["default"].ie9OrOlderNotSupportedError
            };
        }
        if (browserInfo.browser === 3 /* Firefox */ &&
            browserInfo.browserVersion && browserInfo.browserVersion.major <= 43) {
            return {
                supportLevel: 3 /* Blocked */,
                warning: _Utilities_resx__WEBPACK_IMPORTED_MODULE_1__["default"].firefox43OrOlderNotSupportedError
            };
        }
        // Old versions of Firefox (<44) have a bug where the Headers object is defined,
        // but it lacks Headers.forEach method. This bug is also impact instances of Firefox 44/45
        // fetch polyfill handles the case where Headers are just not present (IE/Safari)
        if (typeof Headers !== 'undefined' &&
            typeof Headers.prototype.forEach === 'undefined') {
            return {
                supportLevel: 3 /* Blocked */,
                warning: undefined
            };
        }
        return {
            supportLevel: 0 /* None */,
            warning: undefined
        };
    };
    return BrowserSupport;
}());
/* harmony default export */ __webpack_exports__["default"] = (BrowserSupport);


/***/ }),

/***/ "KZU3":
/*!*****************************************!*\
  !*** ./lib/loader/SPComponentLoader.js ***!
  \*****************************************/
/*! exports provided: SPComponentLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPComponentLoader", function() { return SPComponentLoader; });
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__);
// Copyright (c) Microsoft. All rights reserved.

/**
 * Component loader.
 * Needs to be initialized with an implemented `ISPComponentLoader`.
 *
 * @public
 */
var SPComponentLoader = /** @class */ (function () {
    function SPComponentLoader() {
    }
    /**
     * Initializes the component loader with an implementation.
     * Must be called once before it can be used.
     *
     * @internal
     */
    SPComponentLoader._initialize = function (componentLoader) {
        SPComponentLoader._instance = componentLoader;
    };
    /**
     * {@inheritDoc  ISPComponentLoader._startApplication}
     *
     * @internal
     */
    SPComponentLoader._startApplication = function (preloadedData) {
        return SPComponentLoader._instance._startApplication(preloadedData);
    };
    // Public API
    /**
     * {@inheritDoc  ISPComponentLoader.loadCss}
     */
    SPComponentLoader.loadCss = function (url) {
        return SPComponentLoader._instance.loadCss(url);
    };
    /**
     * {@inheritDoc  ISPComponentLoader.loadScript}
     */
    SPComponentLoader.loadScript = function (url, options) {
        return SPComponentLoader._instance.loadScript(url, options);
    };
    /**
     * {@inheritDoc  ISPComponentLoader.loadComponent}
     */
    SPComponentLoader.loadComponent = function (manifest) {
        return SPComponentLoader._instance.loadComponent(manifest);
    };
    // Alpha API
    /**
     * {@inheritDoc  ISPComponentLoader.loadComponentById}
     *
     * @public
     */
    SPComponentLoader.loadComponentById = function (id, version) {
        return SPComponentLoader._instance.loadComponentById(id, version);
    };
    /**
     * {@inheritDoc  ISPComponentLoader.registerManifests}
     *
     * @alpha
     */
    SPComponentLoader.registerManifests = function (manifests) {
        return SPComponentLoader._instance.registerManifests(manifests);
    };
    /**
     * {@inheritDoc  ISPComponentLoader.manifestReferences}
     *
     * @internal
     */
    SPComponentLoader._getManifestReferences = function () {
        return SPComponentLoader._instance._manifestReferences;
    };
    /**
     * Returns static copies of all the manifests.
     *
     * @public
     */
    SPComponentLoader.getManifests = function () {
        var retVal = [];
        SPComponentLoader._instance._manifestReferences.forEach(function (manifest) {
            retVal.push(Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(manifest));
        });
        return retVal;
    };
    /**
     * {@inheritDoc  ISPComponentLoader.tryGetLoadedComponent}
     *
     * @alpha
     */
    SPComponentLoader.tryGetLoadedComponent = function (manifest) {
        return SPComponentLoader._instance.tryGetLoadedComponent(manifest);
    };
    /**
     * {@inheritDoc  ISPComponentLoader.tryGetManifestById}
     *
     * @alpha
     */
    SPComponentLoader.tryGetManifestById = function (id, version) {
        return SPComponentLoader._instance.tryGetManifestById(id, version);
    };
    /**
     * {@inheritdoc ManifestStore.requestManifest}
     *
     * @alpha
     */
    SPComponentLoader.requestManifest = function (id, version) {
        return SPComponentLoader._instance.requestManifest(id, version);
    };
    // Internal methods
    /**
     * {@inheritDoc  ISPComponentLoader._loadDebugManifestsForWorkbench}
     *
     * @internal
     */
    SPComponentLoader._loadDebugManifestsForWorkbench = function (manifestsFileUrl) {
        return SPComponentLoader._instance._loadDebugManifestsForWorkbench(manifestsFileUrl);
    };
    return SPComponentLoader;
}());



/***/ }),

/***/ "MqKS":
/*!******************************************!*\
  !*** ./lib/debug/confirmDebugAllowed.js ***!
  \******************************************/
/*! exports provided: confirmDebugAllowed, dangerouslyEnableDebug, peekDebugAllowed */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "confirmDebugAllowed", function() { return confirmDebugAllowed; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dangerouslyEnableDebug", function() { return dangerouslyEnableDebug; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peekDebugAllowed", function() { return peekDebugAllowed; });
/* harmony import */ var _ensureDebugComponents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ensureDebugComponents */ "X2Mq");

/**
 * State of whether debug is allowed or not. "Undefined" means we haven't asked,
 *  "false" means debug is prohibited, and "true" means debug is allowed.
 */
var _loaderResponse = undefined;
var _manifestsResponse = undefined;
var _debugAllowedPromise;
function confirmDebugAllowed(options) {
    if (_requiresPrompt(options)) {
        if (!_debugAllowedPromise) {
            _debugAllowedPromise = new Promise(function (resolve) {
                // Download the prompt
                Object(_ensureDebugComponents__WEBPACK_IMPORTED_MODULE_0__["default"])().then(function (debugComponents) {
                    // Show the prompt
                    return debugComponents.showDebugPrompt(options).then(function (allowed) {
                        _debugAllowedPromise = undefined;
                        if (options.loaderRequested) {
                            _loaderResponse = allowed;
                        }
                        if (options.manifestsRequested) {
                            _manifestsResponse = allowed;
                        }
                        resolve(allowed);
                    });
                }).catch(console.error);
            });
            return _debugAllowedPromise;
        }
        else {
            throw new Error('Debug prompt is currently being shown and cannot be shown again until it has been dismissed.');
        }
    }
    else {
        return Promise.resolve(peekDebugAllowed(options));
    }
}
function dangerouslyEnableDebug() {
    _loaderResponse = true;
    _manifestsResponse = true;
}
function peekDebugAllowed(options) {
    return ((!options.loaderRequested || _loaderResponse === true) &&
        (!options.manifestsRequested || _manifestsResponse === true));
}
function _requiresPrompt(options) {
    // Only show the prompt if we don't already know if it's been approved or declined
    return ((options.loaderRequested && _loaderResponse === undefined) ||
        (options.manifestsRequested && _manifestsResponse === undefined));
}


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "PypK":
/*!*************************************************!*\
  !*** ./lib/requirejs/SystemJsFallbackLoader.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _systemjs_normalizeName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../systemjs/normalizeName */ "Edzh");
/* harmony import */ var _utilities_LoadComponentExecutor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utilities/LoadComponentExecutor */ "td2X");




var SystemJsFallbackLoader = /** @class */ (function () {
    function SystemJsFallbackLoader(serviceScope) {
        this._isInitialized = false;
        this._serviceScope = serviceScope;
        this._executor = new _utilities_LoadComponentExecutor__WEBPACK_IMPORTED_MODULE_3__["default"](this._loadComponentImpl.bind(this));
    }
    Object.defineProperty(SystemJsFallbackLoader.prototype, "executor", {
        get: function () {
            return this._executor;
        },
        enumerable: true,
        configurable: true
    });
    SystemJsFallbackLoader.prototype.loadComponent = function (manifest) {
        return this._executor.loadComponent(manifest);
    };
    SystemJsFallbackLoader.prototype._loadComponentImpl = function (manifest) {
        var _this = this;
        return this._ensureInitialized().then(function () {
            // At this point we are on a best-effort basis once RequireJS fails to load the component.
            // This is overly expensive but it "just works" to ensure that SystemJS has everything that's needed.
            // Loading a component twice could lead to unexpected behavior and race condition issues.
            _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_0__["default"].instance.getAllComponentReferences().forEach(function (value, key) {
                _this._systemJsLoader._ensure(Object(_systemjs_normalizeName__WEBPACK_IMPORTED_MODULE_2__["normalizeFailoverPathName"])(key), value);
            });
            _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_1__["default"].instance.getRegisteredManifests().forEach(function (m) {
                _this._systemJsLoader.configure(m);
            });
            return _this._systemJsComponentLoader.loadComponent(manifest).then(function (module) {
                _this._restoreGlobals();
                return module;
            }, function (error) {
                _this._restoreGlobals();
                throw error;
            });
        });
    };
    SystemJsFallbackLoader.prototype._ensureInitialized = function () {
        var _this = this;
        if (this._isInitialized) {
            return Promise.resolve();
        }
        this._saveGlobals();
        return __webpack_require__.e(/*! import() | systemjs-component-loader */ "systemjs-component-loader").then(__webpack_require__.bind(null, /*! ../systemjs/index */ "dcIE")).then(function (module) {
            _this._systemJsComponentLoader = new module.SPSystemJsComponentLoader(_this._serviceScope);
            _this._systemJsLoader = _this._serviceScope.consume(module.SystemJsLoader.serviceKey);
            _this._restoreGlobals();
            _this._isInitialized = true;
        });
    };
    SystemJsFallbackLoader.prototype._saveGlobals = function () {
        this.requirejs = SystemJsFallbackLoader._window.requirejs;
        this.require = SystemJsFallbackLoader._window.require;
        this.define = SystemJsFallbackLoader._window.define;
    };
    SystemJsFallbackLoader.prototype._restoreGlobals = function () {
        SystemJsFallbackLoader._window.requirejs = this.requirejs;
        SystemJsFallbackLoader._window.require = this.require;
        SystemJsFallbackLoader._window.define = this.define;
    };
    SystemJsFallbackLoader._window = window;
    return SystemJsFallbackLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (SystemJsFallbackLoader);


/***/ }),

/***/ "QcRg":
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/raw-loader/0.5.1/node_modules/raw-loader!./lib/DeveloperTools/BrowserDeveloperToolsWarning/BrowserDeveloperToolsWarning.css ***!
  \*****************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = ".heading{font-size:70px;font-family:Helvetica,Arial,sans-serif;font-weight:700;color:red;-webkit-text-stroke:2px #000}.otherLines{font-size:15px;font-family:Helvetica,Arial,sans-serif;font-weight:700}\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyY1xcRGV2ZWxvcGVyVG9vbHNcXEJyb3dzZXJEZXZlbG9wZXJUb29sc1dhcm5pbmdcXEJyb3dzZXJEZXZlbG9wZXJUb29sc1dhcm5pbmcuc2NzcyIsIiRzdGRpbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUNFLFVBQUEsS0FDQSxZQUFBLFNDQXNCLENEQXRCLEtDQTZCLENEQTdCLFdBQ0EsWUFBQSxJQUNBLE1BQUEsSUFDQSxvQkFBQSxJQUFBLEtBR0YsWUFDRSxVQUFBLEtBQ0EsWUFBQSxTQ0RzQixDREN0QixLQ0Q2QixDREM3QixXQUNBLFlBQUEifQ== */"

/***/ }),

/***/ "R8e+":
/*!****************************************!*\
  !*** ./lib/requirejs/normalizeName.js ***!
  \****************************************/
/*! exports provided: default, normalizeFailoverPathName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeFailoverPathName", function() { return normalizeFailoverPathName; });
/* harmony import */ var _utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/normalizeComponentId */ "jLfe");

/**
 * Given a manifest, or a manifest and a name, normalizes the name for usage
 * in stores and RequireJS.
 *
 * This is used in order to support versioning for components, and uniquely
 * identify non-component dependencies.
 *
 * Behavior:
 * Returns <manifestId>_<manifestVersion>.
 * If a name is provided returns the <manifestId>_<manifestVersion>/<name>.
 */
function normalizeName(manifest, name) {
    if (name) {
        return _normalizeManifestId(manifest) + "/" + name;
    }
    else {
        return _normalizeManifestId(manifest);
    }
}
function _normalizeManifestId(manifest) {
    return Object(_utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_0__["default"])(manifest.id, manifest.version);
}
/**
 * This is only used for components that have a failover path (so far, react and react-dom).
 * As the failover path is used when there is no component, they work via its name,
 * but as opposed to the 'path' dependencies, they are unique in SPFx, like a component.
 *
 * They return the name directly, prepended by the component base URL.
 */
function normalizeFailoverPathName(name) {
    return name;
}


/***/ }),

/***/ "TUD0":
/*!******************************************!*\
  !*** ./lib/requirejs/RequireJsLoader.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stores/AddressStore */ "F+Lb");
/* harmony import */ var _utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/resolveAddress */ "W2kl");
/* harmony import */ var _utilities_isCorsEnabled__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utilities/isCorsEnabled */ "ASbA");
/* harmony import */ var _normalizeName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./normalizeName */ "R8e+");
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _utilities_SPLoaderFlights__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utilities/SPLoaderFlights */ "dQRF");
// Copyright (c) Microsoft. All rights reserved.
/// <reference path="./requirejs.d.ts" />










var REQUIREJS_LOAD_TIMEOUT_IN_SECONDS = 90;
/**
 * Loader for RequireJS.
 * Provides the instance of RequireJS and allows methods for configuration.
 */
var RequireJsLoader = /** @class */ (function () {
    function RequireJsLoader(serviceScope) {
        this._configuredFailoverPaths = [];
        /**
         * Map to track duplicate module names, in the form { newModuleName -> originalModuleName }
         * There are case where 2 different components have different ids, but are pointing to the same script.
         * RequireJS doesn't accept that, so before calling require([modules], callback) it gets the original
         * module name, so it will load the right component.
         */
        this._duplicateModuleNames = new Map();
        this._checkDependencies = this._checkDependencies.bind(this);
        this._initialize();
    }
    Object.defineProperty(RequireJsLoader.prototype, "loadEntryPointErrorProcessors", {
        get: function () {
            return [this._checkDependencies];
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(RequireJsLoader.prototype, "loadComponentDependencyErrorProcessors", {
        get: function () {
            return [];
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(RequireJsLoader.prototype, "loadPathDependencyErrorProcessors", {
        get: function () {
            return [this._checkDependencies];
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Ensures that the module is present in RequireJS for the component manifest.
     * In order to do so, it removes any pre-existing module that was already loaded.
     */
    RequireJsLoader.prototype.ensure = function (manifest, module) {
        var name = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
        return this._ensure(name, module);
    };
    /**
     * Calls actual RequireJS config()
     */
    RequireJsLoader.prototype.requireConfig = function (config) {
        this._requirejs.config(config);
    };
    RequireJsLoader.prototype.load = function (manifest, name, globalName) {
        return this.requireLoad(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, name), globalName)
            .then(function (module) {
            if (!name && manifest.loaderConfig.exportName) { // Only do this for the entry point, that has no name
                return module[manifest.loaderConfig.exportName];
            }
            else {
                return module;
            }
        });
    };
    RequireJsLoader.prototype.loadFromFailoverPath = function (name) {
        return this.requireLoad(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["normalizeFailoverPathName"])(name));
    };
    /**
     * Calls RequireJS require()
     * Catches exceptions and returns a rejected promise with the error from RequireJS
     */
    RequireJsLoader.prototype.requireLoad = function (name, globalName) {
        var _this = this;
        // Check if the module name points to a duplicate script
        if (this._duplicateModuleNames.has(name)) {
            name = this._duplicateModuleNames.get(name);
        }
        try {
            return this._requirePromise(name).then(function (module) {
                return _this._ensureProperModuleLoaded(name, module, globalName);
            }).catch(function (error) {
                return _this._handleRequireJsError(name, error, globalName);
            });
        }
        catch (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], error, RequireJsLoader._requireEventName);
            return Promise.reject(error);
        }
    };
    RequireJsLoader.prototype.delete = function (manifest) {
        return this.requireDelete(manifest);
    };
    /**
     * Calls RequireJS undef() with the name matching the input manifest.
     * Also removes the script tag from the head, so RequireJS will request the script again.
     */
    RequireJsLoader.prototype.requireDelete = function (manifest) {
        var normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
        this._requirejs.undef(normalizedName);
        var scriptTags = document.getElementsByTagName('script');
        for (var i = 0; i < scriptTags.length; i++) {
            var scriptTag = scriptTags[i];
            if (normalizedName === scriptTag.getAttribute('data-requiremodule')) {
                scriptTag.parentNode.removeChild(scriptTag);
                break;
            }
        }
    };
    /**
     * For a module name, returns the URL that RequireJS is configured with.
     * @param name - Module name to request the URL from.
     */
    RequireJsLoader.prototype.getConfiguredUrl = function (name) {
        return this.requireContext.config.paths[name];
    };
    /**
     * Sets the config for RequireJS. Handles global exports, renames the dependencies.
     * Also sets AddressStore with the right mapping between script and URL.
     */
    RequireJsLoader.prototype.configure = function (manifest) {
        var resources = manifest.loaderConfig.scriptResources;
        var pathConfig = {};
        var currentMapConfig = {};
        var shimConfig = {};
        for (var name_1 in resources) {
            if (resources.hasOwnProperty(name_1)) {
                this._configureResource(name_1, resources[name_1], manifest, pathConfig, currentMapConfig, shimConfig);
            }
        }
        var normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
        var mapConfig = {};
        mapConfig[normalizedName] = currentMapConfig;
        this.requireConfig({
            paths: pathConfig,
            map: mapConfig,
            shim: shimConfig
        });
        // There's a global __spfxPreloadedModules that may host the define arguments for preloaded components.
        // This ensures that RequireJS will automatically load them if they are present.
        if (RequireJsLoader._window.define &&
            RequireJsLoader._window.__spfxPreloadedModules &&
            RequireJsLoader._window.__spfxPreloadedModules.hasOwnProperty(normalizedName)) {
            var args = RequireJsLoader._window.__spfxPreloadedModules[normalizedName];
            RequireJsLoader._window.define(args.id, args.deps, args.f);
            delete RequireJsLoader._window.__spfxPreloadedModules[normalizedName];
        }
    };
    /**
       * Gets an array of missing dependencies hat failed to load.
       */
    RequireJsLoader.prototype.getMissingDependencies = function (moduleName) {
        var registryEntry = this.requireContext.registry[moduleName];
        var missingDependencies = [];
        if (registryEntry) {
            for (var _i = 0, _a = registryEntry.depMaps; _i < _a.length; _i++) {
                var dependency = _a[_i];
                if (this.requireContext.defined.hasOwnProperty(dependency.id) &&
                    this.requireContext.defined[dependency.id] === undefined) {
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], new Error("Dependency \"" + dependency.id + "\" not found for module \"" + moduleName + "\""), RequireJsLoader._requireEventName);
                    missingDependencies.push(dependency.id);
                }
            }
        }
        return missingDependencies;
    };
    /**
     * Ensures that the module is present in RequireJS with the defined name.
     * In order to do so, it removes any pre-existing module that was already loaded.
     */
    RequireJsLoader.prototype._ensure = function (name, module) {
        this._requirejs.undef(name);
        this._define(name, [], function () { return module; });
        this._requirejs([name]);
    };
    RequireJsLoader.prototype._configureResource = function (name, resource, manifest, pathConfig, mapConfig, shimConfig) {
        if (resource.type === 'component') {
            var componentResource = resource;
            this._configureComponentResource(name, componentResource, manifest, pathConfig, mapConfig, shimConfig);
        }
        else { // path or localizedPath
            this._configurePathResource(name, resource, manifest, pathConfig, mapConfig, shimConfig);
        }
    };
    RequireJsLoader.prototype._configurePathResource = function (name, resource, manifest, pathConfig, mapConfig, shimConfig) {
        // Step 1: Set map configuration with the normalized name.
        // The normalized name of the entry point is the name of the component (i.e. <id>_<version>)
        // Other path dependencies have the resource name appended (i.e. <id>_<version>/<name>)
        var normalizedName;
        if (name === manifest.loaderConfig.entryModuleId) { // the entry point of the module
            normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
        }
        else {
            normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, name);
            mapConfig[name] = normalizedName;
        }
        // Step 2: Set path configuration with the URL of the resource.
        // If the URL for the resource is already used by another manifest, we re-use that normalized name.
        var address = this._resolveAddress(manifest, name);
        var existingNormalizedNameForAddress = _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.getNormalizedName(address);
        if (existingNormalizedNameForAddress) {
            mapConfig[name] = existingNormalizedNameForAddress;
            this._duplicateModuleNames.set(normalizedName, existingNormalizedNameForAddress);
        }
        else {
            pathConfig[normalizedName] = address;
            _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.set(normalizedName, address);
        }
        // Step 3: Set shim configuration with global names and dependencies, if applicable.
        // Only path configurations (not localized path configurations) support it.
        var pathResource = resource;
        if (pathResource) {
            // There are some issues with JQuery and Yammer using RequireJS that we can self-recover.
            // This does nothing if JQuery or Yammer are not dependencies of the component.
            this._fixUpJQueryKnownIssues(name, manifest, pathResource, manifest.loaderConfig.scriptResources);
            this._fixUpYammerKnownIssues(name, manifest, pathResource);
            if (pathResource.globalName) {
                shimConfig[normalizedName] = {
                    exports: pathResource.globalName,
                    deps: pathResource.globalDependencies
                };
            }
        }
    };
    RequireJsLoader.prototype._configureComponentResource = function (name, moduleConfiguration, manifest, pathConfig, mapConfig, shimConfig) {
        // Map the dependency to the normalized name of the component.
        var resourceManifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.tryGetManifest(moduleConfiguration.id, moduleConfiguration.version);
        if (resourceManifest) {
            mapConfig[name] = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(resourceManifest);
        }
        if (moduleConfiguration.failoverPath) {
            // Multiple components can have the same dependencies with failover paths. Configure only once.
            if (this._configuredFailoverPaths.indexOf(name) === -1) {
                var normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["normalizeFailoverPathName"])(name);
                // Store the address both in RequireJS and the AddressStore for the SPFx loader.
                pathConfig[normalizedName] = this._resolveAddress(manifest, name);
                _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.set(normalizedName, this._resolveAddress(manifest, name));
                this._configuredFailoverPaths.push(name);
            }
        }
    };
    RequireJsLoader.prototype._fixUpJQueryKnownIssues = function (name, manifest, resource, resources) {
        var jqueryString = 'jquery';
        var jQueryString = 'jQuery';
        var jqueryuiString = 'jqueryui';
        // Fix-up: Some customers declared jQuery dependency without explicitly declaring a global name in the manifest
        // Fix-up: Some customers declared the global as 'jquery' instead of 'jQuery'
        // RequireJS doesn't work properly in either of those cases
        this._fixWrongGlobalName(name, jqueryString, jqueryString, jQueryString, manifest, resource);
        // Fix-up: Some customers declare JQuery UI without the dependency on JQuery
        if (name.toLowerCase() === jqueryuiString &&
            (!resource.globalDependencies || resource.globalDependencies.length === 0)) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], "Fixing up JQueryUI path dependency for component \"" + manifest.id + "\" (" + manifest.alias + ")");
            if (resources[jqueryString]) {
                resource.globalDependencies = [jqueryString];
            }
            else if (resources[jQueryString]) {
                resource.globalDependencies = [jQueryString];
            }
            else {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], "Didn't find JQuery path dependency in \"" + manifest.id + "\" (" + manifest.alias + ") to fix JQuery UI");
            }
        }
    };
    RequireJsLoader.prototype._fixUpYammerKnownIssues = function (name, manifest, resource) {
        // Fix-up: Some customers declared yammer dependency without explicitly declaring a global name in the manifest
        // Fix-up: Some customers declared the global as 'yammer' instead of 'yam'
        var yammerString = 'yammer';
        var yamString = 'yam';
        this._fixWrongGlobalName(name, yammerString, yammerString, yamString, manifest, resource);
    };
    RequireJsLoader.prototype._fixWrongGlobalName = function (name, expectedName, knownBadName, expectedGlobalName, manifest, resource) {
        if ((name.toLowerCase() === expectedName && !resource.globalName)
            || resource.globalName === knownBadName) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], "Fixing up wrong \"" + name + "\" path dependency for component \"" + manifest.id + "\" (" + manifest.alias + ")");
            resource.globalName = expectedGlobalName;
        }
    };
    Object.defineProperty(RequireJsLoader.prototype, "requireContext", {
        get: function () {
            return this._requirejs.s.contexts._; // tslint:disable-line:no-any
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Executes require([moduleName]) with the provided module name, returning a promise instead of callbacks.
     * @param moduleName - Name of the module to load with require()
     */
    RequireJsLoader.prototype._requirePromise = function (moduleName) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            _this._requirejs([moduleName], function (module) { return resolve(module); }, function (error) { return reject(error); });
        });
    };
    /**
     * If RequireJS is not loaded already, it will load it.
     * If it's loaded, it just takes the necessary variables from the window.
     */
    RequireJsLoader.prototype._initialize = function () {
        if (!this._isRequireJsLoaded()) {
            this._loadRequireJs();
        }
        else {
            this._setRequireJsLocalVariables();
        }
        var config = { waitSeconds: REQUIREJS_LOAD_TIMEOUT_IN_SECONDS };
        // <script crossorigin="anonymous"> enables scripts be transparent to service workers
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1106 /* AkamaiCrossOrigin */)) {
            config.onNodeCreated = function (node, c, moduleName, url) {
                if (Object(_utilities_isCorsEnabled__WEBPACK_IMPORTED_MODULE_5__["default"])(url)) {
                    node.setAttribute('crossorigin', 'anonymous');
                }
            };
        }
        // Ensure that the wait time for load is enough
        this.requireConfig(config);
    };
    RequireJsLoader.prototype._loadRequireJs = function () {
        if (!_utilities_SPLoaderFlights__WEBPACK_IMPORTED_MODULE_9__["default"]._loadRequireJSOnWindow()) {
            // Load RequireJS
            var requirejs_1 =  false
                ? undefined
                : __webpack_require__(/*! exports-loader?requirejs,require,define!../../blobs/requirejs/2.1.20/require.min */ "esv8");
            // Set the output in the window, for compatibility
            RequireJsLoader._window.requirejs = requirejs_1.requirejs;
            RequireJsLoader._window.require = requirejs_1.require;
            RequireJsLoader._window.define = requirejs_1.define;
        }
        else {
            // using raw-loader ensures the module is loaded with the correct global (window) context
             false
                ? undefined
                : eval.call(window, __webpack_require__(/*! !raw-loader!../../blobs/requirejs/2.1.20/require.min */ "5TKm"));
        }
        // Provide a base configuration for RequireJS
        var requireJsConfig = {
            baseUrl: RequireJsLoader._invalidBaseUrl
        };
        this._setRequireJsLocalVariables();
        this.requireConfig(requireJsConfig);
    };
    /**
     * Returns true if RequireJS has been loaded and is in the window variable
     */
    RequireJsLoader.prototype._isRequireJsLoaded = function () {
        return (RequireJsLoader._window.requirejs !== undefined &&
            RequireJsLoader._window.require !== undefined &&
            RequireJsLoader._window.define !== undefined);
    };
    /**
     * Sets the needed RequireJS variables in the RequireJsLoader to avoid going to the window
     * variable every time.
     */
    RequireJsLoader.prototype._setRequireJsLocalVariables = function () {
        this._requirejs = RequireJsLoader._window.requirejs;
        this._define = RequireJsLoader._window.define;
    };
    /**
     * Helper method for RequireJS loader.
     * RequireJS takes addresses without the js extension, so this calls the real resolveAddress and removes that
     */
    RequireJsLoader.prototype._resolveAddress = function (manifest, resourceName) {
        var address = Object(_utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_4__["default"])(manifest, resourceName);
        // Remove .js extension in the end
        address = address.replace(/.js$/, '');
        return address;
    };
    /**
     * Resolves with the correct loaded module, when applicable.
     *
     * If the module is defined by a global variable, it returns the object in the global variable.
     * If the module has been loaded correctly, it returns the loaded module.
     * If the module failed to load and it's an SPFx component, we try to load a different version of the same component.
     *
     * This happens because if the version in the manifest and the version in the module name don't match,
     * RequireJS has a weird behavior where it loads the component but doesn't return it.
     */
    // tslint:disable-next-line:no-any
    RequireJsLoader.prototype._ensureProperModuleLoaded = function (moduleName, module, globalName) {
        if (globalName) {
            if (window.hasOwnProperty(globalName)) {
                var returnValue = window[globalName]; // tslint:disable-line:no-any
                this._ensure(moduleName, returnValue);
                return Promise.resolve(returnValue);
            }
            else {
                // Current customers may load path dependencies with the wrong global name.
                // If the global variable is not found, return an empty object to "succeed" the load.
                var error = _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_7__["default"].buildScriptFailedToCreateGlobalError(globalName, this.getConfiguredUrl(moduleName));
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], error);
                // Public warning to advertise the configuration mistake, without failing the load.
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Log"].warn(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"].id, error.message);
                return Promise.resolve({});
            }
        }
        else if (module === undefined && this._isSpfxComponent(moduleName)) {
            return this._requireLoadForDifferentModuleId(moduleName);
        }
        else {
            return Promise.resolve(module);
        }
    };
    /**
     * When RequireJS rejects the load with an error, it can be due to different root causes.
     * If the module is set in the global, the load may fail but the module be correctly loaded in the global scope,
     * in that case we fix up RequireJS internals and return the global object.
     *
     * If there is a version mismatch between the version in the manifest and the version in the JS code,
     * RequireJS may fail.
     * In that case we try to load a different version of the same component.
     *
     * Otherwise, it rejects with the original error.
     */
    RequireJsLoader.prototype._handleRequireJsError = function (moduleName, error, globalName) {
        if (globalName && window.hasOwnProperty(globalName)) {
            var returnValue = window[globalName]; // tslint:disable-line:no-any
            this._ensure(moduleName, returnValue);
            return Promise.resolve(returnValue);
        }
        else if (this._isOrphanedVersionLoaded(moduleName)) {
            return this._requireLoadForDifferentModuleId(moduleName, error);
        }
        else {
            return Promise.reject(error);
        }
    };
    /**
     * Returns true if RequireJS loaded a module that matches the component id with a different version.
     * This only applies to to mismatches between manifest and bundle, not between 2 different manifest versions.
     */
    RequireJsLoader.prototype._isOrphanedVersionLoaded = function (moduleName) {
        var _this = this;
        var componentId = this._extractComponentIdFromModuleName(moduleName);
        // tslint:disable-next-line:no-any
        var registry = this.requireContext.registry;
        var registryIds = Object.keys(registry);
        // The loaded module doesn't match the requested one, but it's the same component's entry point
        return registryIds
            .map(function (id) { return moduleName !== id && id.indexOf(componentId) === 0 && _this._isSpfxComponent(id); })
            .reduce(function (prev, curr) { return prev || curr; }, false);
    };
    /**
     * Returns true if the module name corresponds to an SPFx component.
     * SPFx components have module name in the form of "<componentId>_<version>"
     */
    RequireJsLoader.prototype._isSpfxComponent = function (moduleName) {
        if (moduleName.split('/').length > 1) {
            return false; // This is a path dependency, not a component itself
        }
        var substrings = moduleName.split('_');
        return substrings.length === 2 && _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].isValid(substrings[0]) && _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Version"].isValid(substrings[1]);
    };
    /**
     * Returns the component id out of the module name.
     * Module names are generated based on "<componentId>_<version>"
     */
    RequireJsLoader.prototype._extractComponentIdFromModuleName = function (moduleName) {
        return moduleName.split('_')[0];
    };
    /**
     * Looks at the path to see if it is a provider hosted app.  If it is, it modifies the existing
     * module name to match the provider hosted app js module name and then loads the component.  If
     * its not that case it looks at the registry of RequireJS to find another version of the same
     * component as moduleName, if found, it configures RequireJS with the same dependency resolution
     * (that comes from the manifest) and ensuring that the path points only to the found version,
     * and it loads the component.
     */
    RequireJsLoader.prototype._requireLoadForDifferentModuleId = function (moduleName, error) {
        // tslint:disable-next-line:no-any
        var registry = this.requireContext.registry;
        var requirejsInternalConfig = this.requireContext.config;
        var requestedComponentId = this._extractComponentIdFromModuleName(moduleName);
        var requestedPath = requirejsInternalConfig.paths[moduleName];
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('5A521104-FCA6-4265-97B7-F3D955EE9923'), '04/25/2019', 'Loading SaaS solutions with RequireJS') &&
            requestedPath.indexOf('/sp-provider-hosted-web-part') !== -1) {
            // The provider hosted web part has js files with a fixed guid (given below), but
            // each instance of a webpart gets it's own unique guid which doesn't match the JS.
            // Therefore when we see this we replace it automatically and retry
            var loadedModuleName = '4fca678e-55b6-46c8-b823-dd875dfdb951_1.0.0';
            this._replaceModuleInConfig(requirejsInternalConfig, loadedModuleName, moduleName, requestedPath);
            // Load the right component
            return this._requirePromise(loadedModuleName);
        }
        else {
            for (var _i = 0, _a = Object.keys(registry); _i < _a.length; _i++) {
                var loadedModuleName = _a[_i];
                var loadedComponentId = this._extractComponentIdFromModuleName(loadedModuleName);
                if (requestedComponentId === loadedComponentId && moduleName !== loadedModuleName) {
                    this._replaceModuleInConfig(requirejsInternalConfig, loadedModuleName, moduleName, requirejsInternalConfig.paths[moduleName]);
                    // Load the right component
                    return this._requirePromise(loadedModuleName);
                }
            }
        }
        // if no component found
        return Promise.reject(error ? error : new Error("Unknown error when loading module \"" + moduleName + "\""));
    };
    RequireJsLoader.prototype._replaceModuleInConfig = function (requirejsInternalConfig, existingModuleName, moduleName, modulePath) {
        // Create a RequireJS configuration for the other version of the component
        var map = {}; // Definition from requirejs.d.ts
        map[existingModuleName] = requirejsInternalConfig.map[moduleName];
        var paths = {};
        paths[existingModuleName] = modulePath;
        this._requirejs.config({
            map: map,
            paths: paths
        });
        // Remove the definition (including the <script> tag) of any previously load of the same component
        // Otherwise RequireJS can't load the module again
        this._requirejs.undef(moduleName);
        this._requirejs.undef(existingModuleName);
        // Avoid two path entries going to the same path
        requirejsInternalConfig.paths[moduleName] = "SPFx: Use " + existingModuleName + " instead";
    };
    /**
     * Checks the that all dependencies for a module are found.
     * If the response is not successful, it throws the appropriate error.
     * @param manifest - Manifest where the resource is defined
     * @param name - Name of the resource to check
     */
    RequireJsLoader.prototype._checkDependencies = function (manifest, name) {
        var moduleName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, name);
        var missingDependencies = this.getMissingDependencies(moduleName);
        if (missingDependencies.length > 0) {
            return Promise.reject(_error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_7__["default"].buildModuleHasFailedDependencyError(moduleName, missingDependencies.join(', ')));
        }
        return Promise.resolve();
    };
    RequireJsLoader.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-loader:RequireJsLoader', RequireJsLoader);
    RequireJsLoader._requireEventName = 'RequireJS.require';
    /**
     * This is the configured base URL for RequireJS.
     * When a user tries to call RequireJS with a relative path, an error will show this as the base URL.
     *
     * Example:
     * require("myModule") => Error: https://relative-path.invalid/myModule not found
     */
    RequireJsLoader._invalidBaseUrl = 'https://relative-path.invalid/';
    RequireJsLoader._window = window;
    return RequireJsLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (RequireJsLoader);


/***/ }),

/***/ "U29/":
/*!****************************************!*\
  !*** ./lib/systemjs/SystemJsLoader.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stores/AddressStore */ "F+Lb");
/* harmony import */ var _utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/resolveAddress */ "W2kl");
/* harmony import */ var _utilities_isCorsEnabled__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utilities/isCorsEnabled */ "ASbA");
/* harmony import */ var _normalizeName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./normalizeName */ "Edzh");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");
/* harmony import */ var _SystemsJs_resx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SystemsJs.resx */ "Inam");
// Copyright (c) Microsoft. All rights reserved.
/// <reference path="./es-module-loader.d.ts" />










/**
 * Loader for SystemJS.
 * Provides the instance of SystemJS and allows methods for configuration.
 */
var SystemJsLoader = /** @class */ (function () {
    function SystemJsLoader(serviceScope) {
        this._configuredFailoverPaths = [];
        this._checkEntryPointDependenciesError = this._checkEntryPointDependenciesError.bind(this);
        this._initialize();
    }
    Object.defineProperty(SystemJsLoader.prototype, "loadEntryPointErrorProcessors", {
        get: function () {
            return [this._checkEntryPointDependenciesError];
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SystemJsLoader.prototype, "loadComponentDependencyErrorProcessors", {
        get: function () {
            return [];
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SystemJsLoader.prototype, "loadPathDependencyErrorProcessors", {
        get: function () {
            return [];
        },
        enumerable: true,
        configurable: true
    });
    SystemJsLoader.prototype.ensure = function (manifest, module) {
        var name = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
        return this._ensure(name, module);
    };
    /**
     * If a module hasn't been loaded with the specified name,
     * it created a new module and sets it in SystemJS
     */
    SystemJsLoader.prototype._ensure = function (name, module) {
        var system = this._system;
        if (!system.has(name)) {
            system.set(name, system.newModule(module));
        }
    };
    SystemJsLoader.prototype.delete = function (manifest) {
        return this._delete(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest));
    };
    /**
     * If a module has been loaded with the specified name,
     * it delete it from SystemJS
     */
    SystemJsLoader.prototype._delete = function (name) {
        var system = this._system;
        if (system.has(name)) {
            system.delete(name);
        }
    };
    /**
     * Calls actual System.config()
     */
    SystemJsLoader.prototype.systemConfig = function (config) {
        this._originalSystemConfig.call(this._system, config);
    };
    SystemJsLoader.prototype.load = function (manifest, name, globalName) {
        var _this = this;
        return this.systemImport(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, name))
            .then(function (module) {
            var retValue = module;
            // Save "exportedModuleName" in SystemJS
            if (!name && manifest.loaderConfig.exportName) {
                retValue = module[manifest.loaderConfig.exportName];
                _this._ensure(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, manifest.loaderConfig.exportName), retValue);
            }
            return retValue;
        });
    };
    SystemJsLoader.prototype.loadFromFailoverPath = function (name) {
        return this.systemImport(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["normalizeFailoverPathName"])(name));
    };
    /**
     * Calls System.import()
     * Catches exceptions and returns a rejected promise with the error from SystemJS
     */
    SystemJsLoader.prototype.systemImport = function (name) {
        try {
            return this._system.import(name);
        }
        catch (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__["loadComponentLogSource"], error, SystemJsLoader.systemImportEventName);
            return Promise.reject(error);
        }
    };
    /** Calls System.delete() with the name matching the input manifest */
    SystemJsLoader.prototype.systemDelete = function (manifest) {
        this._system.delete(Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest));
    };
    /**
     * Sets the config for SystemJS. Handles global exports, renames the dependencies.
     * Also sets AddressStore with the right mapping between script and URL.
     */
    SystemJsLoader.prototype.configure = function (manifest) {
        var resources = manifest.loaderConfig.scriptResources;
        var depsMap = {};
        // Used only for failover paths. So far, this impacts react and react-dom on debug manifests.
        var globalDepsMap = {};
        for (var name_1 in resources) {
            if (resources[name_1].type === 'component') {
                var moduleConfiguration = resources[name_1];
                var resourceManifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.tryGetManifest(moduleConfiguration.id, moduleConfiguration.version);
                if (resourceManifest) {
                    depsMap[name_1] = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(resourceManifest);
                }
                if (moduleConfiguration.failoverPath) {
                    if (this._configuredFailoverPaths.indexOf(name_1) === -1) {
                        var normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["normalizeFailoverPathName"])(name_1);
                        _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.set(normalizedName, Object(_utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_4__["default"])(manifest, name_1));
                        globalDepsMap[name_1] = normalizedName;
                        this._configuredFailoverPaths.push(name_1);
                    }
                }
            }
            else { // path or localizedPath
                var normalizedName = void 0;
                if (name_1 === manifest.loaderConfig.entryModuleId) { // the entry point of the module
                    normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest);
                }
                else {
                    normalizedName = Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest, name_1);
                    depsMap[name_1] = normalizedName;
                }
                var address = Object(_utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_4__["default"])(manifest, name_1);
                _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.set(normalizedName, address);
                var resource = resources[name_1];
                this._configureMetadata(normalizedName, address, resource);
            }
        }
        var packages = {};
        packages[Object(_normalizeName__WEBPACK_IMPORTED_MODULE_6__["default"])(manifest)] = {
            map: depsMap,
            defaultExtension: false
        };
        var config = {
            packages: packages
        };
        this.systemConfig(config);
        if (Object.keys(globalDepsMap).length) {
            this.systemConfig({
                map: globalDepsMap
            });
        }
    };
    /**
     * Returns the dependencies of a component, as detected by SystemJS when importing the module.
     * This method ignores the manifest dependencies and looks only at the JS file instead.
     * Used as a helper to find mismatching dependencies.
     *
     * @returns Array with the dependencies in a component. Empty array if dependencies could not be found.
     */
    SystemJsLoader.prototype.getDependencies = function (manifest) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(manifest, 'manifest');
        var defined = this._system.defined; // tslint:disable-line:no-any
        // Empirically, this is saved in 'https://relative-path.invalid/<id>_<version>'
        var definedName = this.getDefinedId(manifest);
        var componentDefinition = defined[definedName];
        if (!componentDefinition) {
            return [];
        }
        return componentDefinition.deps;
    };
    /**
     * Executes the base configuration for SystemJS. It should be private but it's public
     * so STS pages can modify scriptLoad to be false.
     */
    SystemJsLoader.prototype._baseSystemConfig = function (pluginName, scriptLoad) {
        var systemConfig = {
            meta: {
                '*': {
                    loader: pluginName,
                    scriptLoad: scriptLoad
                }
            }
        };
        this.systemConfig(systemConfig);
    };
    SystemJsLoader.prototype._initialize = function () {
        this._system = this._loadSystemJs();
        this._setCustomLoader(SystemJsLoader.pluginName, this._system);
        // Create a default SystemJS config that passes everything to our loader.
        var systemConfig = {
            baseURL: SystemJsLoader._invalidBaseUrl,
            defaultJsExtensions: false
        };
        this.systemConfig(systemConfig);
        this._baseSystemConfig(SystemJsLoader.pluginName, true);
    };
    SystemJsLoader.prototype._loadSystemJs = function () {
        // Load SystemJS
        var system =  false
            ? undefined
            // tslint:disable-next-line:max-line-length
            : __webpack_require__(/*! @microsoft/loader-raw-script!../../blobs/systemjs/0.19.25/dist/system.spfx */ "AvvH");
        // Hide System.config()
        this._originalSystemConfig = system.config;
        system.config = function (config) {
            throw new Error(_SystemsJs_resx__WEBPACK_IMPORTED_MODULE_9__["default"].systemConfigDisabledError);
        };
        return system;
    };
    SystemJsLoader.prototype._setCustomLoader = function (pluginName, system) {
        var loader = {
            /**
             * locate returns an address for a module name.
             * In the case of components it takes the normalized name, which is an absolute URL.
             * SystemJS gets the name as 'https://component-id.invalid/<id>', which has an entry
             * in the AddressStore.
             * If the AddressStore doesn't have an entry for the name, locate leaves the name unmodified.
             * This supports the scenario where people call System.import() with an absolute URL.
             * System.import() with a relative URL is not supported and will fail to fetch the module,
             * as the base URL is 'https://relative-path.invalid/'
             */
            locate: function (module) {
                var address = _stores_AddressStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.tryGetAddress(module.name);
                if (address) {
                    return address;
                }
                else {
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_7__["loadComponentLogSource"], "Address not found for module name: " + module.name + ". Using it as absolute URL.");
                    // If we don't have the address mapped, assume the name IS the URL to grab it
                    return module.name;
                }
            }
        };
        // Load the loader as a system module and then set the system config. We need to do this is this order, otherwise
        // SystemJS will try to load our loader with itself, and will throw.
        system.set(pluginName, system.newModule(loader));
    };
    /**
     * Returns the id used by SystemJS in System.defined.
     * This allows to browse through SystemJS internals for additional data, like the JS dependencies.
     */
    SystemJsLoader.prototype.getDefinedId = function (manifest) {
        return SystemJsLoader._invalidBaseUrl + manifest.id + '_' + manifest.version;
    };
    /**
     * Configures the SystemJS metadata with the crossOrigin parameter,
     * and if the resource has a globalName; sets the global name configuration.
     * The crossOrigin parameter is needed for the SPFx service worker to transparently
     * read cross-domain resources.
     */
    SystemJsLoader.prototype._configureMetadata = function (normalizedName, address, resource) {
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPFlight"].isEnabled(1106 /* AkamaiCrossOrigin */)) {
            var meta = {};
            // Support global names
            if (resource.globalName) {
                meta[normalizedName] = {
                    format: 'global',
                    exports: resource.globalName
                };
            }
            if (Object(_utilities_isCorsEnabled__WEBPACK_IMPORTED_MODULE_5__["default"])(address)) {
                (meta[normalizedName] || (meta[normalizedName] = {})).crossOrigin = 'anonymous';
            }
            var globalConfig = {
                meta: meta
            };
            this.systemConfig(globalConfig);
        }
        else {
            // Support global names
            if (resource && resource.globalName) {
                var meta = {};
                meta[normalizedName] = {
                    format: 'global',
                    exports: resource.globalName
                };
                var globalConfig = {
                    meta: meta
                };
                this.systemConfig(globalConfig);
            }
        }
    };
    /**
     * Checks if the loaded JS dependencies match with dependencies declared in the manifest.
     * This can happen when a component is re-built but the manifest hasn't been modified.
     * If missing dependencies are found, it throws with an error stating the first mismatch.
     *
      * @param manifest - Manifest to check
      * @param name - Name of the entry point. Unused in this function.
     */
    SystemJsLoader.prototype._checkEntryPointDependenciesError = function (manifest, name) {
        var dependencies = this.getDependencies(manifest);
        var resources = manifest.loaderConfig.scriptResources;
        dependencies.forEach(function (depName) {
            if (!resources[depName]) {
                throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_8__["default"].buildModuleHasUndeclaredDependencyError(manifest, depName);
            }
        });
        return Promise.resolve();
    };
    SystemJsLoader.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["ServiceKey"].create('sp-loader:SystemJsLoader', SystemJsLoader);
    SystemJsLoader.pluginName = 'sp-loader-resolver';
    SystemJsLoader.systemImportEventName = 'System.import';
    /**
     * This is the configured base URL for SystemJS.
     * When a user tries to call SystemJS with a relative path, an error will show this as the base URL.
     *
     * Example:
     * System.import("myModule") => Error: https://relative-path.invalid/myModule not found
     */
    SystemJsLoader._invalidBaseUrl = 'https://relative-path.invalid/';
    return SystemJsLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (SystemJsLoader);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "Uk6p":
/*!*******************************************!*\
  !*** ./lib/loader/BaseComponentLoader.js ***!
  \*******************************************/
/*! exports provided: BaseComponentLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseComponentLoader", function() { return BaseComponentLoader; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _debug_DebugManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../debug/DebugManager */ "GV8Z");
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/componentConstants */ "kd3Z");
/* harmony import */ var _utilities_KillSwitches__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utilities/KillSwitches */ "HLbO");
/* harmony import */ var _utilities_PlatformLoader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/PlatformLoader */ "fjGJ");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */







/**
 * The base class for a component loader.
 * Contains all implementation of the component loader that is agnostic to the internal module loader.
 *
 * @alpha
 */
var BaseComponentLoader = /** @class */ (function () {
    // Initialization
    /**
     * @internal
     */
    function BaseComponentLoader(serviceScope) {
        this._isInitialized = false;
        if (!BaseComponentLoader._headElement) {
            BaseComponentLoader._headElement = document.getElementsByTagName('head')[0];
        }
        this._serviceScope = serviceScope;
    }
    /**
     * This is called by the page scripts to start loading the framework. Do not call it from your own code.
     * @internal
     */
    BaseComponentLoader.prototype._startApplication = function (preloadedData) {
        return _utilities_PlatformLoader__WEBPACK_IMPORTED_MODULE_6__["default"].startApplication(preloadedData, this._serviceScope).then(function (application) {
            // Normally non-SPFx environments locate their SPFx host application via a window variable
            // that our startup code assigns like this:
            //
            //   global.moduleLoaderPromise = global.spModuleLoader.start(spClientSidePageContext, handleFailure)
            //
            // However, in the case of the modern ListView, the "listview-spfx-host" loads after the main scripts,
            // which creates a race condition where window.moduleLoaderPromise sometimes might not be assigned yet
            // when their code tries to read it.  In that situation, they can register a callback like this:
            //
            // if (window['moduleLoaderPromise']) {
            //   window['moduleLoaderPromise'].then((application) => {
            //     doSomething(application);
            //   });
            // } else {
            //   window['_spLoaderCallback'] = function(application) {
            //     doSomething(application);
            //   };
            // }
            //
            /* tslint:disable:no-string-literal */
            if (window['_spLoaderCallback']) {
                var _spLoaderCallback = window['_spLoaderCallback'];
                _spLoaderCallback(application);
            }
            /* tslint:enable:no-string-literal */
            return application;
        });
    };
    /**
     * Initializes the component loader.
     * Registers all manifests (including debug manifests, if it applies)
     * and sets up internal logic before allowing to load components.
     * @internal
     */
    BaseComponentLoader.prototype._initialize = function (preloadedData, bundledComponents, debugData) {
        if (this._isInitialized) {
            return;
        }
        // Set before the promise to ensure the async code is not called twice
        this._isInitialized = true;
        _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.registerPreloadedManifests(preloadedData);
        // We need to register the debug manifests before overriding the components
        if (debugData.debugManifests) {
            if (!debugData.registerAsNonDebug && !_utilities_KillSwitches__WEBPACK_IMPORTED_MODULE_5__["KillSwitches"].isDangerouslyEnableDebugKillSwitchActivated()) {
                _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.registerDebugManifests(debugData.debugManifests || []);
            }
            else {
                _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.registerManifests(debugData.debugManifests || [], debugData.registerAsNonDebug);
            }
        }
        this._listViewHostWorkaround(preloadedData);
        // Pins the bundled components except when it's using a debug loader
        if (!debugData.debugLoader) {
            this._pinBundledComponents(bundledComponents);
        }
        this._overrideComponents(bundledComponents);
    };
    /**
     * Try and get a reference to a loaded component from a manifest.
     *
     * @param manifest - Manifest of the module to load.
     * @returns A reference to a component module by id and version or, if it does not exist, undefined.
     */
    BaseComponentLoader.prototype.tryGetLoadedComponent = function (manifest) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(manifest, 'manifest');
        return _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_2__["default"].instance.tryGetComponentReference(manifest.id, manifest.version);
    };
    /**
     * Resolve a component id and version, and load it.
     * If a manifest cannot be found, it requests the manifest to the server through the REST API.
     * If a manifest is not found and not present in the server, it rejects the promise.
     *
     * @param id      - The id of the component to load.
     * @param version - The version of the component to load. If version is not defined, the method
     *                    will load any version of the component.
     * @returns         A promise containing the loaded module.
     *
     * @alpha
     */
    BaseComponentLoader.prototype.loadComponentById = function (id, version) {
        var _this = this;
        var parsedId;
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
            parsedId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(id).toString();
        }
        catch (error) {
            return Promise.reject(error);
        }
        var manifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.tryGetManifest(parsedId, version);
        if (manifest) {
            return this.loadComponent(manifest);
        }
        else {
            return _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.requestManifest(parsedId, version)
                .then(function (newManifest) { return _this.loadComponent(newManifest); });
        }
    };
    /**
     * Registers manifests in the manifest store.
     *
     * @param manifests - The manifests to register in the store.
     *
     * @alpha
     */
    BaseComponentLoader.prototype.registerManifests = function (manifests) {
        _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.registerManifests(manifests, false);
    };
    Object.defineProperty(BaseComponentLoader.prototype, "_manifestReferences", {
        /**
       * All registered manifests.
       * Note that this returns the actual manifests, so modifying the
       * returned objects modifies the primary data, not a copy
       *
       * @readonly
       * @internal
       */
        get: function () {
            return _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.getRegisteredManifests();
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Inserts a <link ... /> tag for a stylesheet.
     *
     * @param url - The CSS file URL.
     */
    BaseComponentLoader.prototype.loadCss = function (url) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(url, 'url');
        var linkTag = document.createElement('link');
        linkTag.rel = 'stylesheet';
        linkTag.type = 'text/css';
        linkTag.href = url;
        BaseComponentLoader._headElement.appendChild(linkTag);
    };
    // Internal methods
    /**
     * {@inheritDoc  ISPComponentLoader._loadDebugManifestsForWorkbench}
     *
     * @internal
     */
    BaseComponentLoader.prototype._loadDebugManifestsForWorkbench = function (manifestsFileUrl) {
        return _debug_DebugManager__WEBPACK_IMPORTED_MODULE_1__["DebugManager"].loadAndRegisterManifestsFile(this, manifestsFileUrl, /* registerAsNonDebug */ true).then();
    };
    /**
     * Get a component manifest from the component id and version.
     *
     * @param id      - GUID id of the component.
     * @param version - Version of the component. If version is not defined, the method
     *                    will return the manifest for any version of the component.
     * @returns         Manifest for the component.
     *
     * @alpha
     */
    BaseComponentLoader.prototype.tryGetManifestById = function (id, version) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        var parsedId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(id).toString();
        return _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.tryGetManifest(parsedId, version);
    };
    /**
     * {@inheritdoc ManifestStore.requestManifest}
     *
     * @alpha
     */
    BaseComponentLoader.prototype.requestManifest = function (id, version) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        var parsedId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(id).toString();
        return _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.requestManifest(parsedId, version);
    };
    /**
     * {@inheritDoc  ISPComponentLoader._unloadComponents}
     *
     * @internal
     */
    BaseComponentLoader.prototype._unloadComponents = function () {
        var _this = this;
        _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.getRegisteredManifests().forEach(function (manifest) {
            _this._unloadComponent(manifest);
        });
    };
    /**
     * SystemJS component loader overrides this function with a workaround required for the loader to work with
     * ListView pages.
     * @virtual
     */
    BaseComponentLoader.prototype._listViewHostWorkaround = function (preloadedData) {
        // Do nothing
    };
    /**
     * Pins the manifest for each component that is bundled in the assembly.
     * See ManifestStore._pinManifest() for details about pinning.
     */
    BaseComponentLoader.prototype._pinBundledComponents = function (bundledComponents) {
        for (var id in bundledComponents) {
            // Different versions of React may be loaded by components at a later time, so we should not pin that manifest.
            // React / ReactDOM are the only non-SPFx, non-internal packages that we add on an assembly.
            if (bundledComponents.hasOwnProperty(id) && id !== _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_4__["reactComponentId"] && id !== _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_4__["reactDomComponentId"]) {
                _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance._pinManifest(id);
            }
        }
    };
    /**
     * Overrides component definitions with existing components.
     * This is used for the assemblies to set up all the data.
     * This is dependent on the internal module loader (SystemJS, RequireJS) so each implementation has to write its own.
     */
    BaseComponentLoader.prototype._overrideComponents = function (bundledComponents) {
        var _this = this;
        Object.keys(bundledComponents).forEach(function (key) {
            _this._overrideComponent(key, bundledComponents[key]);
        });
    };
    return BaseComponentLoader;
}());



/***/ }),

/***/ "W2kl":
/*!*****************************************!*\
  !*** ./lib/utilities/resolveAddress.js ***!
  \*****************************************/
/*! exports provided: default, resolvePath */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return resolveAddress; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolvePath", function() { return resolvePath; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_LocaleStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stores/LocaleStore */ "XZXY");
/* harmony import */ var _telemetryConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./telemetryConstants */ "4mHd");
/* harmony import */ var _Utilities_resx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Utilities.resx */ "lcN8");





/**
 * Given a manifest and a resource name returns the URL to the resource.
 *
 * For path or localizedPath dependencies, it returns the full URL to the resource.
 * For component dependencies, it returns the full URL to the failover path,
 * or returns an empty string if it doesn't exist.
 *
 * If the resource name is not present in the loader config, it throws an error.
 */
function resolveAddress(manifest, resourceName) {
    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(manifest, 'manifest');
    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(resourceName, 'resourceName');
    if (!manifest.loaderConfig.scriptResources.hasOwnProperty(resourceName)) {
        var error = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_4__["default"].resourceNotFoundError, resourceName, manifest.id, manifest.alias));
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_telemetryConstants__WEBPACK_IMPORTED_MODULE_3__["resolveAddressLogSource"], error);
        throw error;
    }
    var moduleConfiguration = manifest.loaderConfig.scriptResources[resourceName];
    var address = resolveModuleConfiguration(resourceName, moduleConfiguration);
    // Prepend the base URL if this isn't a fully-qualified URL.
    if (!address.match(/^https?\:\/\//i)) {
        // Replace this with shared URL concatenation logic. VSO#249681
        var moduleBaseUrl = manifest.loaderConfig.internalModuleBaseUrls[0].replace(/\/+$/, '');
        address = moduleBaseUrl + "/" + address;
    }
    return address;
}
/**
 * Resolves a IModuleConfiguration to a URL
 *
 * Take a look at the IModuleConfiguration documentation for more information.
 */
function resolveModuleConfiguration(moduleName, moduleConfiguration) {
    if (moduleConfiguration) {
        switch (moduleConfiguration.type) {
            case 'component':
                var failoverPath = moduleConfiguration.failoverPath;
                if (!failoverPath) {
                    throw new Error(_Utilities_resx__WEBPACK_IMPORTED_MODULE_4__["default"].noFailoverPathError);
                }
                return resolvePath(failoverPath);
            case 'path':
                return resolvePath(moduleConfiguration.path);
            case 'localizedPath':
                return resolvePath(resolveLocalizedModuleConfiguration(moduleConfiguration));
            case null: // tslint:disable-line:no-null-keyword
            case undefined:
            default: // tslint:disable-line:no-switch-case-fall-through
                return moduleName;
        }
    }
    else {
        return moduleName;
    }
}
/**
 * Resolves a path to the default or debug version of a script.
 *
 * If a debug version is present, it uses that. Otherwise uses the default one.
 * If the path is a string, it returns it unchanged.
 */
function resolvePath(path) {
    if (typeof path === 'string') {
        return path;
    }
    else {
        if (path.debug) {
            return path.debug;
        }
        else {
            return path.default;
        }
    }
}
/**
 * Resolves a localized module config to a path.
 */
function resolveLocalizedModuleConfiguration(moduleConfiguration) {
    // Workaround for temporary issue in SPOREL. VSO#279843
    var currentLocale = _stores_LocaleStore__WEBPACK_IMPORTED_MODULE_2__["default"].getLocale();
    if (moduleConfiguration.paths) {
        // This only applies when testing production manifests without the server
        if (currentLocale) {
            for (var locale in moduleConfiguration.paths) {
                if (locale && locale.toUpperCase() === currentLocale.toUpperCase() && moduleConfiguration.paths[locale]) {
                    return moduleConfiguration.paths[locale];
                }
            }
        }
    }
    return moduleConfiguration.defaultPath;
}


/***/ }),

/***/ "X+PM":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_X_PM__;

/***/ }),

/***/ "X2Mq":
/*!********************************************!*\
  !*** ./lib/debug/ensureDebugComponents.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ensureDebugComponents; });
var _debugComponentsPromise;
function ensureDebugComponents() {
    if (!_debugComponentsPromise) {
        _debugComponentsPromise = Promise.all(/*! import() | debug-prompt-components */[__webpack_require__.e("vendors~debug-prompt-components~developer-tools"), __webpack_require__.e("vendors~debug-prompt-components"), __webpack_require__.e("debug-prompt-components")]).then(__webpack_require__.bind(null, /*! ./debugComponents */ "bEFm"));
    }
    return _debugComponentsPromise;
}


/***/ }),

/***/ "XZXY":
/*!***********************************!*\
  !*** ./lib/stores/LocaleStore.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
  * @internal
  */
var LocaleStore = /** @class */ (function () {
    function LocaleStore() {
    }
    LocaleStore.getLocale = function () {
        return LocaleStore._locale;
    };
    LocaleStore.setLocale = function (locale) {
        LocaleStore._locale = locale;
    };
    LocaleStore._locale = undefined;
    return LocaleStore;
}());
/* harmony default export */ __webpack_exports__["default"] = (LocaleStore);


/***/ }),

/***/ "Y/fc":
/*!****************************************!*\
  !*** ./lib/stores/ManifestProvider.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__);




/**
 * @internal
 */
var ManifestProvider = /** @class */ (function () {
    function ManifestProvider(serviceScope, webAbsoluteUrl) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('ManifestProvider');
        this._webAbsoluteUrl = webAbsoluteUrl;
        this._pageContext = serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_3__["PageContext"].serviceKey);
        this._httpClient = serviceScope.consume(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__["SPHttpClient"].serviceKey);
    }
    /**
     * Given a component id and version, requests its manifest (and all its dependencies) to SharePoint
     * through a REST API.
     * Returns a promise with all the manifests.
     * @param componentId - Id of the requested component
     * @param version - Optional. Version of the requested component
     */
    ManifestProvider.prototype.tryGetManifest = function (componentId, version) {
        return this.tryGetManifests([{ id: componentId, version: version }]);
    };
    /**
     * Given an array of ids and versions, requests their manifest (and all their dependencies) to SharePoint
     * through a REST API.
     * Returns a promise with all the manifests.
     * @param ids - Array with all the id and version pairs
     */
    ManifestProvider.prototype.tryGetManifests = function (ids) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('ManifestProvider.tryGetManifests');
        var webUrl = (this._pageContext.web && this._pageContext.web.absoluteUrl) || this._webAbsoluteUrl;
        return this._httpClient.post(webUrl + ManifestProvider._restApiUrl, _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_2__["SPHttpClient"].configurations.v1, {
            body: JSON.stringify({ components: ids })
        }).then(function (response) {
            if (!response.ok) {
                var error = new Error("GetClientSideComponents failed with HTTP status " + response.status);
                qosMonitor.writeUnexpectedFailure('UnsuccessfulResponse', error, { statusCode: response.status, correlationId: response.correlationId });
                throw error;
            }
            qosMonitor.writeSuccess({ correlationId: response.correlationId });
            return response.json().then(_this._extractManifests);
        }).catch(function (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_this._logSource, error);
            qosMonitor.writeUnexpectedFailure(undefined, error);
            throw error;
        });
    };
    ManifestProvider.prototype._extractManifests = function (response) {
        return response.value
            .filter(function (qr) { return qr.Status === 0 && !!qr.Manifest; }) // Remove query results that weren't successful or empty manifests
            .map(function (qr) { return JSON.parse(qr.Manifest); }); // Create the manifest object out of the string
    };
    ManifestProvider._restApiUrl = '/_api/web/GetClientSideComponents';
    return ManifestProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (ManifestProvider);


/***/ }),

/***/ "Z6P1":
/*!*********************************!*\
  !*** ./lib/error/Error.resx.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_HyNcqqy05+791EWZRJ/Erg';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "aghm":
/*!*************************************!*\
  !*** ./lib/loader/loadComponent.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return loadComponent; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/resolveAddress */ "W2kl");
/* harmony import */ var _utilities_ResourceUrlChecker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/ResourceUrlChecker */ "cnPT");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _Loader_resx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Loader.resx */ "qoaT");
/* harmony import */ var _loc_Common_resx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../loc/Common.resx */ "8N74");











var FIRST_RETRY = 1;
var MAX_NUMBER_RETRIES = 3;
var LOAD_COMPONENT_IMPL_EVENT_NAME = 'loadComponentImpl';
/**
 * Loads a component from a manifest.
 *
 * @param manifest - Manifest of the module to load.
 * @returns          A promise containing the loaded module.
 */
function loadComponent(manifest, moduleLoader) {
    if (!manifest) {
        return Promise.reject(new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Loader_resx__WEBPACK_IMPORTED_MODULE_9__["default"].isUndefinedValidateError, 'manifest')));
    }
    // If the module has already been cached, return the cached value. Might not have been resolved yet
    var cachedModule = _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_4__["default"].instance.tryGetComponent(manifest.id, manifest.version);
    if (cachedModule) {
        return cachedModule;
    }
    var componentPromise = _loadComponentRetryStrategy(manifest, FIRST_RETRY, MAX_NUMBER_RETRIES, moduleLoader).catch(function (error) {
        // If it fails to load, the caller can then call loadComponent() again and not hit the cache
        _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_4__["default"].instance.deleteComponent(manifest.id, manifest.version);
        throw error;
    });
    // Synchronously store the component in the Component Store
    // This allows other callers to use the cached execution when trying to load it as a dependency.
    // If the execution failed, it would asynchronously delete it from the Component Store so it can be requested again.
    _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_4__["default"].instance.storeComponent(manifest.id, manifest.version, componentPromise);
    return componentPromise;
}
function _loadComponentRetryStrategy(manifest, currentRetryNumber, maxNumberRetries, moduleLoader) {
    if (currentRetryNumber === 1) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Loader_resx__WEBPACK_IMPORTED_MODULE_9__["default"].loadComponentLog, manifest.id, manifest.alias, manifest.version));
    }
    else {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Loader_resx__WEBPACK_IMPORTED_MODULE_9__["default"].loadComponentRetryLog, manifest.id, manifest.alias, currentRetryNumber, maxNumberRetries));
    }
    return _loadComponentImpl(manifest, moduleLoader)
        .then(function (component) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Loader_resx__WEBPACK_IMPORTED_MODULE_9__["default"].loadComponentEndLog, manifest.id, manifest.alias, manifest.version));
        return component;
    })
        .catch(function (error) {
        // If the attempt to load fails, the module loader deletes the module to try to load it again
        // Otherwise, the retry will get the module from the cache, thus failing again.
        moduleLoader.delete(manifest);
        if (currentRetryNumber < maxNumberRetries) {
            return _loadComponentRetryStrategy(manifest, currentRetryNumber + 1, maxNumberRetries, moduleLoader);
        }
        else {
            // All retries failed, so the user behavior will be affected. Log error instead of verbose
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Common_resx__WEBPACK_IMPORTED_MODULE_10__["default"].loadComponentMaxRetriesError, manifest.id, manifest.alias, maxNumberRetries)));
            throw error;
        }
    });
}
/**
 * Private method to load component.
 * Assumes that the manifest is not undefined, and the component hasn't been loaded yet.
 *
 * Configures the module loader for this component, loads the dependencies and the entry point,
 * and in case of failure it rejects the promise.
 */
function _loadComponentImpl(manifest, moduleLoader) {
    try {
        moduleLoader.configure(manifest);
    }
    catch (error) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], error.message, LOAD_COMPONENT_IMPL_EVENT_NAME);
        return Promise.reject(error);
    }
    var componentDeps = [];
    var pathDeps = [];
    try {
        componentDeps = _loadComponentDependencies(manifest, moduleLoader);
    }
    catch (error) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], error.message, LOAD_COMPONENT_IMPL_EVENT_NAME);
        return Promise.reject(error);
    }
    try {
        pathDeps = _loadPathDependencies(manifest, moduleLoader);
    }
    catch (error) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], error.message, LOAD_COMPONENT_IMPL_EVENT_NAME);
        return Promise.reject(error);
    }
    // If any dependency fails, the result for the entry point is not reliable, so the load fails
    return Promise.all(componentDeps.concat(pathDeps)).then(function (components) {
        // If the component doesn't have an entryModuleId, we can return an empty object
        // This is used for component that only load dependencies but have no code, like JSOM
        if (!manifest.loaderConfig.entryModuleId) {
            moduleLoader.ensure(manifest, {});
            return {};
        }
        return _loadEntryPoint(manifest, moduleLoader).then(function (entryPoint) {
            _validateComponentIsNotEmptyOrThrow(entryPoint, manifest);
            return entryPoint;
        });
    }).catch(function (e) {
        throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadComponentError(manifest, e);
    });
}
/**
 * Checks if the component is not empty (or does not have a default properties that is empty).
 * If either case happens, it throws an error
 */
function _validateComponentIsNotEmptyOrThrow(component, manifest) {
    if (Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_2__["isEmpty"])(component)) {
        throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadComponentReturnsEmptyError(manifest);
    }
    var defaultObject = component.default; // tslint:disable-line:no-any
    if (defaultObject && Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_2__["isEmpty"])(defaultObject) && !defaultObject.prototype) {
        throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadComponentReturnsDefaultEmptyError(manifest);
    }
}
/**
 * Loads all component dependencies for a component.
 * If the dependency can't be found and it has a failover path, it will load it
 * from the path.
 *
 * Returns an array with the promises for all the component dependencies
 */
function _loadComponentDependencies(manifest, moduleLoader) {
    var depPromises = [];
    var resources = manifest.loaderConfig.scriptResources;
    var _loop_1 = function (name_1) {
        if (resources[name_1].type === 'component' && !resources[name_1].shouldNotPreload) {
            var moduleConfiguration_1 = resources[name_1];
            var resourceManifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.tryGetManifest(moduleConfiguration_1.id, moduleConfiguration_1.version);
            if (resourceManifest) {
                var dep = loadComponent(resourceManifest, moduleLoader).catch(function (e) {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadComponentDependencyError(manifest, e);
                });
                depPromises.push(dep);
            }
            else { // if (!resourceManifest)
                if (moduleConfiguration_1.failoverPath) {
                    var dep = moduleLoader.loadFromFailoverPath(name_1)
                        .catch(function (e) {
                        return _processLoadErrors(manifest, name_1, [_utilities_ResourceUrlChecker__WEBPACK_IMPORTED_MODULE_7__["default"].checkResourceUrl].concat(moduleLoader.loadComponentDependencyErrorProcessors), function () { return _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadComponentDependencyFailoverPathError(manifest, name_1, Object(_utilities_resolveAddress__WEBPACK_IMPORTED_MODULE_6__["resolvePath"])(moduleConfiguration_1.failoverPath), e); });
                    });
                    depPromises.push(dep);
                }
                else { // if (!moduleConfiguration.failoverPath)
                    var dep = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.requestManifest(moduleConfiguration_1.id, moduleConfiguration_1.version)
                        .then(function (m) { return loadComponent(m, moduleLoader); })
                        .catch(function (e) { return Promise.reject(_error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildManifestNotFoundError(moduleConfiguration_1)); });
                    depPromises.push(dep);
                }
            }
        }
    };
    for (var name_1 in resources) {
        _loop_1(name_1);
    }
    return depPromises;
}
/**
 * Loads all paths dependencies for a component, excluding the entry point.
 * If a path dependency is marked as shouldNotPreload, it is skipped
 */
function _loadPathDependencies(manifest, moduleLoader) {
    var resources = manifest.loaderConfig.scriptResources;
    var loadedPathDependencies = new Map();
    for (var name_2 in resources) {
        if ((resources[name_2].type === 'path' || resources[name_2].type === 'localizedPath')
            && !resources[name_2].shouldNotPreload) {
            if (name_2 !== manifest.loaderConfig.entryModuleId) {
                // tslint:disable-next-line:no-floating-promises - This is partially handled, but should be refactored
                _loadPathDependency(manifest, name_2, loadedPathDependencies, moduleLoader);
            }
        }
    }
    var loadedPathDependenciesValues = [];
    loadedPathDependencies.forEach(function (value) {
        loadedPathDependenciesValues.push(value);
    });
    return loadedPathDependenciesValues;
}
/**
 * Loads a single path dependency.
 * If there are any global dependencies, the requested path dependency will be loaded after its dependencies
 * in a serial way.
 * If the path dependency is requested more than once, it just returns the original promise.
 */
function _loadPathDependency(manifest, name, loadedPathDependencies, moduleLoader) {
    // If already requested, return the existing promise
    var loadedPathDependency = loadedPathDependencies.get(name);
    if (loadedPathDependency) {
        return loadedPathDependency;
    }
    var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadPathDependencyQosScenarioName"]);
    var qosExtraData = {
        name: name,
        manifestId: manifest.id,
        version: manifest.version,
        alias: manifest.alias,
        isInternal: manifest.isInternal
    };
    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_8__["loadComponentLogSource"], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Loader_resx__WEBPACK_IMPORTED_MODULE_9__["default"].loadPathDependencyLog, name, manifest.id, manifest.alias));
    var resources = manifest.loaderConfig.scriptResources;
    var pathConfig = resources[name];
    if (!pathConfig) {
        return Promise.reject(_error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildMissingPathDependencyError(manifest, name));
    }
    var loadPromise;
    if (pathConfig.globalDependencies) {
        var depPromises = pathConfig.globalDependencies
            .map(function (dep) { return _loadPathDependency(manifest, dep, loadedPathDependencies, moduleLoader); });
        loadPromise = Promise.all(depPromises).then(function () {
            return _moduleLoaderLoadPathDependency(manifest, name, moduleLoader);
        }, function () {
            throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadPathDependencyBlockedError(manifest, name);
        });
    }
    else {
        loadPromise = _moduleLoaderLoadPathDependency(manifest, name, moduleLoader);
    }
    loadedPathDependencies.set(name, loadPromise);
    return loadPromise.then(function (load) {
        qosMonitor.writeSuccess(qosExtraData);
        return load;
    }, function (error) {
        qosMonitor.writeUnexpectedFailure(undefined, error, qosExtraData);
        throw error;
    });
}
/**
 * Auxiliary method to call the module loader on a path dependency.
 * Used only inside _loadPathDependency
 */
function _moduleLoaderLoadPathDependency(manifest, name, moduleLoader) {
    var globalName = manifest.loaderConfig.scriptResources[name].globalName;
    return moduleLoader.load(manifest, name, globalName)
        .catch(function (e) {
        return _processLoadErrors(manifest, name, [_utilities_ResourceUrlChecker__WEBPACK_IMPORTED_MODULE_7__["default"].checkResourceUrl].concat(moduleLoader.loadPathDependencyErrorProcessors), function () { return _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadPathDependencyError(manifest, name, e); });
    });
}
/**
 * Loads the entry point for a component.
 * If it fails, it tries to identify the root cause of the error.
 */
function _loadEntryPoint(manifest, moduleLoader) {
    return moduleLoader.load(manifest).catch(function (e) {
        return _processLoadErrors(manifest, manifest.loaderConfig.entryModuleId, [_utilities_ResourceUrlChecker__WEBPACK_IMPORTED_MODULE_7__["default"].checkResourceUrl].concat(moduleLoader.loadEntryPointErrorProcessors), function () { return _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadEntryPointError(manifest, e); });
    });
}
function _processLoadErrors(manifest, name, errorProcessors, buildDefaultError) {
    return Promise.all(errorProcessors.map(function (errorProcessor) { return errorProcessor(manifest, name); }))
        .then(
    // Default error handling
    function () {
        throw buildDefaultError();
    }, function (e) { throw e; });
}


/***/ }),

/***/ "cLCj":
/*!****************************************!*\
  !*** ./lib/debug/DebugManager.resx.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_FmFyAWZ1md7Z1R+V8t2S2Q';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "cnPT":
/*!*********************************************!*\
  !*** ./lib/utilities/ResourceUrlChecker.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _resolveAddress__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolveAddress */ "W2kl");
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");




var UrlStatus;
(function (UrlStatus) {
    UrlStatus[UrlStatus["Undefined"] = 0] = "Undefined";
    UrlStatus[UrlStatus["OK"] = 1] = "OK";
    UrlStatus[UrlStatus["FileNotFound"] = 2] = "FileNotFound";
    UrlStatus[UrlStatus["Forbidden"] = 3] = "Forbidden";
    UrlStatus[UrlStatus["ClientError"] = 4] = "ClientError";
    UrlStatus[UrlStatus["ServerError"] = 5] = "ServerError";
    UrlStatus[UrlStatus["NetworkError"] = 6] = "NetworkError";
})(UrlStatus || (UrlStatus = {}));
/**
 * Checks if a resource URL is accessible and throws the right error for each case.
 *
 * In the case of localhost errors, it provides guidance on usage of 'gulp' to solve them.
 */
var ResourceUrlChecker = /** @class */ (function () {
    function ResourceUrlChecker() {
    }
    /**
     * Checks the resource URL for the HTTP response status code.
     * If the response is not successful, it throws the appropriate error.
     * @param manifest - Manifest where the resource is defined
     * @param name - Name of the resource to check
     */
    ResourceUrlChecker.checkResourceUrl = function (manifest, name) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(manifest, 'manifest');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(name, 'name');
        var url = Object(_resolveAddress__WEBPACK_IMPORTED_MODULE_2__["default"])(manifest, name);
        return ResourceUrlChecker._getUrlStatus(url).then(function (urlStatus) {
            if (urlStatus !== UrlStatus.OK) {
                return ResourceUrlChecker._throwUrlStatusError(urlStatus, manifest, name, url);
            }
            return Promise.resolve();
        });
    };
    ResourceUrlChecker._throwUrlStatusError = function (urlStatus, manifest, resourceName, url) {
        switch (urlStatus) {
            case UrlStatus.FileNotFound:
                if (url.match(ResourceUrlChecker.localhostUrlRegex)) {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusLocalhostFileNotFoundError(manifest, resourceName, url);
                }
                else {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusFileNotFoundError(manifest, resourceName, url);
                }
            case UrlStatus.Forbidden:
                throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusForbiddenError(manifest, resourceName, url);
            case UrlStatus.ClientError:
                throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusClientErrorError(manifest, resourceName, url);
            case UrlStatus.ServerError:
                throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusServerErrorError(manifest, resourceName, url);
            case UrlStatus.NetworkError:
                if (url.match(ResourceUrlChecker.localhostUrlRegex)) {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusLocalhostNetworkErrorError(manifest, resourceName, url);
                }
                else if (url.match(ResourceUrlChecker.tenantUrlRegex)) {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusDocLibNetworkErrorError(manifest, resourceName, url);
                }
                else if (url.match(ResourceUrlChecker.httpsUrlRegex)) {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusHttpsNetworkErrorError(manifest, resourceName, url);
                }
                else {
                    throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusNetworkErrorError(manifest, resourceName, url);
                }
            case UrlStatus.Undefined:
            default: // tslint:disable-line:no-switch-case-fall-through
                throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildUrlStatusUndefinedError(manifest, resourceName, url);
        }
    };
    // This is not using HttpClient because it might not be initialized at this time.
    // Do not use this code outside of sp-loader
    ResourceUrlChecker._getUrlStatus = function (url) {
        var requestInit = {
            method: 'HEAD',
            mode: 'cors'
        };
        var request = new Request(url, requestInit);
        return window.fetch(request).then(function (response) {
            var httpStatusCode = response.status;
            if (httpStatusCode >= 200 && httpStatusCode < 300) {
                return UrlStatus.OK;
            }
            if (httpStatusCode === 404) {
                return UrlStatus.FileNotFound;
            }
            if (httpStatusCode === 403) {
                return UrlStatus.Forbidden;
            }
            if (httpStatusCode >= 400 && httpStatusCode < 500) {
                return UrlStatus.ClientError;
            }
            if (httpStatusCode >= 500 && httpStatusCode < 600) {
                return UrlStatus.ServerError;
            }
            return UrlStatus.Undefined;
        }).catch(function (error) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(ResourceUrlChecker._logSource, error);
            return UrlStatus.NetworkError;
        });
    };
    ResourceUrlChecker._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('ResourceUrlChecker');
    ResourceUrlChecker.localhostUrlRegex = /^http[s]?:\/\/localhost/;
    ResourceUrlChecker.tenantUrlRegex = /^http[s]?:\/\/[a-zA-Z0-9]+.sharepoint.com/;
    ResourceUrlChecker.httpsUrlRegex = /^https:\/\//;
    return ResourceUrlChecker;
}());
/* harmony default export */ __webpack_exports__["default"] = (ResourceUrlChecker);


/***/ }),

/***/ "dJ1A":
/*!***********************************!*\
  !*** ./lib/stores/Stores.resx.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_ZZX3HYmO09A0dtXnoncSkA';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "dQRF":
/*!******************************************!*\
  !*** ./lib/utilities/SPLoaderFlights.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Class to expose flight checks on sp-loader
 *
 * @internal
 */
var SPLoaderFlights = /** @class */ (function () {
    function SPLoaderFlights() {
    }
    /**
     * Returns true if the SPFx should use the new boot sequence, which will support cross-app navigation.
     *
     * @internal
     */
    SPLoaderFlights._useNewBootSequence = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(182 /* SppplatCrossAppNavigation */);
    };
    SPLoaderFlights._loadRequireJSOnWindow = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1723 /* WexRequireJSLoadOnWindow */);
    };
    return SPLoaderFlights;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPLoaderFlights);


/***/ }),

/***/ "eaMA":
/*!**************************************!*\
  !*** ./lib/stores/ComponentStore.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utilities/normalizeComponentId */ "jLfe");
/* harmony import */ var _Stores_resx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Stores.resx */ "dJ1A");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 *
 * @file ComponentStore.ts
 */






/**
 * Stores component modules by id and version.
 * Used by the component loader to retrieve already loaded components.
 */
var ComponentStore = /** @class */ (function () {
    function ComponentStore() {
        this._componentMap = new Map(); // tslint:disable-line:no-any
        /**
         * References to the resolved value of the promises in the _componentMap.
         */
        this._componentReferenceMap = new Map(); // tslint:disable-line:no-any
    }
    Object.defineProperty(ComponentStore, "instance", {
        get: function () {
            if (!ComponentStore._instance) {
                ComponentStore._instance = new ComponentStore();
            }
            return ComponentStore._instance;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns a promise of the component module by id and version.
     *
     * If the component is not found, returns undefined.
     */
    ComponentStore.prototype.tryGetComponent = function (id, version) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(version, 'version');
        return this._componentMap.get(this._getKey(id, version));
    };
    /**
     * Try and get a reference to a loaded component module by id and version.
     *
     * @param id - The component manifest id.
     * @param version - The component manifest version.
     * @returns A reference to a component module by id and version or, if it does not exist, undefined.
     */
    ComponentStore.prototype.tryGetComponentReference = function (id, version) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(version, 'version');
        return this._componentReferenceMap.get(this._getKey(id, version));
    };
    /**
     * Returns the maps with all the loaded component.
     *
     * @remarks
     * This is not meant to be used as the regular behavior of ComponentStore as it's exposing its internals.
     * This exists only to ensure the SystemJS side-loader knows about all components loaded by RequireJS.
     */
    ComponentStore.prototype.getAllComponentReferences = function () {
        return this._componentReferenceMap;
    };
    /**
     * Returns a promise of the component module by id.
     *
     * If a component is not found, returns undefined.
     * If there are too many components for the id, returns undefined.
     *
     * Don't use this method, use getComponent() instead.
     * This method is only used by the DeveloperToolsLoader for react and office-ui-fabric-react
     * when those haven't been loaded yet, as the version might not be known at the time.
     */
    ComponentStore.prototype.tryGetComponentById = function (id, shouldLog) {
        if (shouldLog === void 0) { shouldLog = true; }
        try {
            return this._getComponentById(id, shouldLog);
        }
        catch (e) {
            return undefined;
        }
    };
    /**
     * Returns a promise of the component module by id.
     *
     * If a component is not found, throws an error.
     * If there are too many components for the id, throws an error.
     *
     * Don't use this method, use getComponent() instead.
     * This method is only used by the DeveloperToolsLoader for react and office-ui-fabric-react
     * when those haven't been loaded yet, as the version might not be known at the time.
     */
    ComponentStore.prototype.getComponentById = function (id) {
        return this._getComponentById(id, true);
    };
    /**
     * Stores a component module.
     *
     * @param id - Component id
     * @param version - Component version
     * @param modulePromise - Promise of the component module, as it might have been not fully loaded yet.
     */
    ComponentStore.prototype.storeComponent = function (id, version, modulePromise) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(version, 'version');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(modulePromise, 'modulePromise');
        var key = this._getKey(id, version);
        if (!this._componentMap.has(key)) {
            // tslint:disable-next-line:no-floating-promises - this can't throw
            modulePromise.then(function (mod) {
                // If deleteComponent has been invoked before this promise could resolve, skip adding the reference
                if (_this._componentMap.has(key)) {
                    _this._componentReferenceMap.set(key, mod);
                }
            });
            this._componentMap.set(key, modulePromise);
        }
    };
    /**
     * Stores an already loaded component module.
     *
     * @param id - Component id
     * @param version - Component version
     * @param modulePromise - Promise of the component module, as it might have been not fully loaded yet.
     */
    ComponentStore.prototype.storeLoadedComponent = function (id, version, module) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(version, 'version');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(module, 'module');
        var key = this._getKey(id, version);
        if (!this._componentMap.has(key)) {
            this._componentMap.set(key, Promise.resolve(module));
            this._componentReferenceMap.set(key, module);
        }
    };
    /**
     * Deletes a component from the store, if it exists.
     *
     * @param id - Component id
     * @param version - Component version
     */
    ComponentStore.prototype.deleteComponent = function (id, version) {
        var key = this._getKey(id, version);
        if (this._componentMap.has(key)) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["componentStoreLogSource"], _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_4__["default"].deleteComponentLog, id, version));
            this._componentMap.delete(key);
        }
        if (this._componentReferenceMap.has(key)) {
            this._componentReferenceMap.delete(key);
        }
    };
    /**
     * Internal implementation of `getManifest` that toggles whether failures should be logged or not.
     */
    ComponentStore.prototype._getComponentById = function (id, shouldLog) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(id, 'id');
        var returnValue = undefined;
        this._componentMap.forEach(function (value, index) {
            // Check whether the index string is prefixed with the Guid that we are looking for
            if (index.indexOf(id) === 0) {
                if (!returnValue) {
                    returnValue = value;
                }
                else {
                    var error = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_4__["default"].tooManyComponentsError, id));
                    if (shouldLog) {
                        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["componentStoreLogSource"], error);
                    }
                    throw error;
                }
            }
        });
        if (!returnValue) {
            var error = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Stores_resx__WEBPACK_IMPORTED_MODULE_4__["default"].noComponentFoundError, id));
            if (shouldLog) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["componentStoreLogSource"], error);
            }
            throw error;
        }
        return returnValue;
    };
    ComponentStore.prototype._getKey = function (id, version) {
        return Object(_utilities_normalizeComponentId__WEBPACK_IMPORTED_MODULE_3__["default"])(id, version);
    };
    return ComponentStore;
}());
/* harmony default export */ __webpack_exports__["default"] = (ComponentStore);


/***/ }),

/***/ "esv8":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/exports-loader/0.6.4/node_modules/exports-loader?requirejs,require,define!./blobs/requirejs/2.1.20/require.min.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var require;var require;/*
 RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
 Available via the MIT or new BSD license.
 see: http://github.com/jrburke/requirejs for details
*/
var requirejs,require,define;
(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function n(b,c){return t(b,c)&&b[c]}function A(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&A(c,function(c,i){if(d||!t(b,i))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
RegExp)?(b[i]||(b[i]={}),U(b[i],c,d,e)):b[i]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function B(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,j,b){var f,l,c,d,h,e,g,i,j=j&&j.split("/"),p=k.map,m=p&&p["*"];if(a){a=a.split("/");l=a.length-1;k.nodeIdCompat&&
Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&j&&(l=j.slice(0,j.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1===c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&p&&(j||m)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){h=l.slice(0,c).join("/");if(j)for(d=j.length;0<d;d-=1)if(b=n(p,j.slice(0,d).join("/")))if(b=n(b,h)){f=b;e=c;break a}!g&&(m&&n(m,h))&&(g=n(m,h),i=c)}!f&&g&&(f=g,e=i);f&&(l.splice(0,
e,f),a=l.join("/"))}return(f=n(k.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(j){if(j.getAttribute("data-requiremodule")===a&&j.getAttribute("data-requirecontext")===h.contextName)return j.parentNode.removeChild(j),!0})}function p(a){var j=n(k.paths,a);if(j&&H(j)&&1<j.length)return j.shift(),h.require.undef(a),h.makeRequire(null,{skipMap:!0})([a]),!0}function g(a){var j,c=a?a.indexOf("!"):-1;-1<c&&(j=a.substring(0,c),a=a.substring(c+1,a.length));return[j,a]}function i(a,
j,b,f){var l,d,e=null,i=j?j.name:null,k=a,p=!0,m="";a||(p=!1,a="_@r"+(K+=1));a=g(a);e=a[0];a=a[1];e&&(e=c(e,i,f),d=n(q,e));a&&(e?m=d&&d.normalize?d.normalize(a,function(a){return c(a,i,f)}):-1===a.indexOf("!")?c(a,i,f):a:(m=c(a,i,f),a=g(m),e=a[0],m=a[1],b=!0,l=h.nameToUrl(m)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:m,parentMap:j,unnormalized:!!b,url:l,originalName:k,isDefine:p,id:(e?e+"!"+m:m)+b}}function r(a){var j=a.id,b=n(m,j);b||(b=m[j]=new h.Module(a));return b}function s(a,
j,b){var f=a.id,c=n(m,f);if(t(q,f)&&(!c||c.defineEmitComplete))"defined"===j&&b(q[f]);else if(c=r(a),c.error&&"error"===j)b(c.error);else c.on(j,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=n(m,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)e.onError(a)}function x(){R.length&&(v(R,function(a){var b=a[0];"string"===typeof b&&(h.defQueueMap[b]=!0);C.push(a)}),R=[])}function y(a){delete m[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",
a.error):(b[f]=!0,v(a.depMaps,function(f,d){var e=f.id,h=n(m,e);h&&(!a.depMatched[d]&&!c[e])&&(n(b,e)?(a.defineDep(d,q[e]),a.check()):F(h,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*k.waitSeconds)&&h.startTime+a<(new Date).getTime(),f=[],l=[],e=!1,i=!0;if(!W){W=!0;A(V,function(a){var h=a.map,g=h.id;if(a.enabled&&(h.isDefine||l.push(a),!a.error))if(!a.inited&&c)p(g)?e=b=!0:(f.push(g),d(g));else if(!a.inited&&(a.fetched&&h.isDefine)&&(e=!0,!h.prefix))return i=!1});if(c&&f.length)return a=B("timeout",
"Load timeout for modules: "+f,null,f),a.contextName=h.contextName,w(a);i&&v(l,function(a){F(a,{},{})});if((!c||b)&&e)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(q,a[0])||r(i(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=h.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=h.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}
function J(){var a;for(x();C.length;){a=C.shift();if(null===a[0])return w(B("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}h.defQueueMap={}}var W,Z,h,L,X,k={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},m={},V={},$={},C=[],q={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=h.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?q[a.map.id]=a.exports:a.exports=q[a.map.id]={}},
module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return n(k.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=n($,a.id)||{};this.map=a;this.shim=n(k.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));
this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;h.startTime=(new Date).getTime();var a=this.map;if(this.shim)h.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?
this.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,h.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||e.onError!==ca)try{f=h.execCb(c,l,b,f)}catch(d){a=d}else f=h.execCb(c,l,b,f);this.map.isDefine&&
void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(q[c]=f,e.onResourceLoad))e.onResourceLoad(h,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=
!0)}}else t(h.defQueueMap,c)||this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=i(a.prefix);this.depMaps.push(d);s(d,"defined",u(this,function(f){var l,d;d=n(aa,this.map.id);var g=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,p=h.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(g=f.normalize(g,function(a){return c(a,P,!0)})||""),f=i(a.prefix+"!"+g,this.map.parentMap),s(f,"defined",u(this,function(a){this.init([],function(){return a},
null,{enabled:!0,ignore:!0})})),d=n(m,f.id)){this.depMaps.push(f);if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=h.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];A(m,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,g=i(d),P=M;c&&(f=c);P&&
(M=!1);r(g);t(k.config,b)&&(k.config[d]=k.config[b]);try{e.exec(f)}catch(m){return w(B("fromtexteval","fromText eval for "+b+" failed: "+m,m,[b]))}P&&(M=!0);this.depMaps.push(g);h.completeLoad(d);p([d],l)}),f.load(a.name,p,l,k))}));h.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=i(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=
n(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",u(this,function(a){this.undefed||(this.defineDep(b,a),this.check())}));this.errback?s(a,"error",u(this,this.errback)):this.events.error&&s(a,"error",u(this,function(a){this.emit("error",a)}))}c=a.id;f=m[c];!t(L,c)&&(f&&!f.enabled)&&h.enable(a,this)}));A(this.pluginMaps,u(this,function(a){var b=n(m,a.id);b&&!b.enabled&&h.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=
[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};h={config:k,contextName:b,registry:m,defined:q,urlFetched:S,defQueue:C,defQueueMap:{},Module:Z,makeModuleMap:i,nextTick:e.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=k.shim,c={paths:!0,bundles:!0,config:!0,map:!0};A(a,function(a,b){c[b]?(k[b]||(k[b]={}),U(k[b],a,!0,!0)):k[b]=a});a.bundles&&A(a.bundles,function(a,b){v(a,
function(a){a!==b&&(aa[a]=b)})});a.shim&&(A(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=h.makeShimExports(a);b[c]=a}),k.shim=b);a.packages&&v(a.packages,function(a){var b,a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(k.paths[b]=a.location);k.pkgs[b]=a.name+"/"+(a.main||"main").replace(ha,"").replace(Q,"")});A(m,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=i(b,null,!0))});if(a.deps||a.callback)h.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;
a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,j){function g(c,d,p){var k,n;j.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if("string"===typeof c){if(G(d))return w(B("requireargs","Invalid require call"),p);if(a&&t(L,c))return L[c](m[a.id]);if(e.get)return e.get(h,c,a,g);k=i(c,a,!1,!0);k=k.id;return!t(q,k)?w(B("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):q[k]}J();h.nextTick(function(){J();
n=r(i(null,a));n.skipMap=j.skipMap;n.init(c,d,p,{enabled:!0});D()});return g}j=j||{};U(g,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf("."),j=b.split("/")[0];if(-1!==e&&(!("."===j||".."===j)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return h.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(q,i(b,a,!1,!0).id)},specified:function(b){b=i(b,a,!1,!0).id;return t(q,b)||t(m,b)}});a||(g.undef=function(b){x();var c=i(b,a,!0),e=n(m,b);e.undefed=!0;d(b);delete q[b];delete S[c.url];
delete $[b];T(C,function(a,c){a[0]===b&&C.splice(c,1)});delete h.defQueueMap[b];e&&(e.events.defined&&($[b]=e.events),y(b))});return g},enable:function(a){n(m,a.id)&&r(a).enable()},completeLoad:function(a){var b,c,d=n(k.shim,a)||{},e=d.exports;for(x();C.length;){c=C.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}h.defQueueMap={};c=n(m,a);if(!b&&!t(q,a)&&c&&!c.inited){if(k.enforceDefine&&(!e||!da(e)))return p(a)?void 0:w(B("nodefine","No define call for "+a,null,[a]));E([a,
d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,g,i;(d=n(k.pkgs,a))&&(a=d);if(d=n(aa,a))return h.nameToUrl(d,b,c);if(e.jsExtRegExp.test(a))d=a+(b||"");else{d=k.paths;a=a.split("/");for(g=a.length;0<g;g-=1)if(i=a.slice(0,g).join("/"),i=n(d,i)){H(i)&&(i=i[0]);a.splice(0,g,i);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":k.baseUrl)+d}return k.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+k.urlArgs):d},load:function(a,b){e.load(h,
a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ia.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),h.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!p(b.id))return w(B("scripterror","Script error for: "+b.id,a,[b.id]))}};h.require=h.makeRequire();return h}var e,x,y,D,I,E,N,J,r,O,ja=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ka=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ha=/^\.\//;x=Object.prototype;var K=
x.toString,fa=x.hasOwnProperty,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ia=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},s={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;s=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(s=require,require=
void 0);e=requirejs=function(b,c,d,p){var g,i="_";!H(b)&&"string"!==typeof b&&(g=b,H(c)?(b=c,c=d,d=p):b=[]);g&&g.context&&(i=g.context);(p=n(F,i))||(p=F[i]=e.s.newContext(i));g&&p.configure(g);return p.require(b,c,d)};e.config=function(b){return e(b)};e.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=e);e.version="2.1.20";e.jsExtRegExp=/^\/|:|\?|\.js$/;e.isBrowser=z;x=e.s={contexts:F,newContext:ga};e({});v(["toUrl","undef","defined","specified"],
function(b){e[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=x.head=D.parentNode;e.onError=ca;e.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};e.load=function(b,c,d){var p=b&&b.config||{},g;if(z){g=e.createNode(p,
c,d);if(p.onNodeCreated)p.onNodeCreated(g,p,c,d);g.setAttribute("data-requirecontext",b.contextName);g.setAttribute("data-requiremodule",c);g.attachEvent&&!(g.attachEvent.toString&&0>g.attachEvent.toString().indexOf("[native code"))&&!Y?(M=!0,g.attachEvent("onreadystatechange",b.onScriptLoad)):(g.addEventListener("load",b.onScriptLoad,!1),g.addEventListener("error",b.onScriptError,!1));g.src=d;J=g;D?y.insertBefore(g,D):y.appendChild(g);J=null;return g}if(ea)try{importScripts(d),b.completeLoad(c)}catch(i){b.onError(B("importscripts",
"importScripts failed for "+c+" at "+d,i,[c]))}};z&&!s.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return r=I,s.baseUrl||(E=r.split("/"),r=E.pop(),O=E.length?E.join("/")+"/":"./",s.baseUrl=O),r=r.replace(Q,""),e.jsExtRegExp.test(r)&&(r=I),s.deps=s.deps?s.deps.concat(r):[r],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ja,"").replace(ka,
function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}g?(g.defQueue.push([b,c,d]),g.defQueueMap[b]=!0):R.push([b,c,d])};define.amd={jQuery:!0};e.exec=function(b){return eval(b)};e(s)}})(this);


/*** EXPORTS FROM exports-loader ***/
exports["requirejs"] = (requirejs);
exports["require"] = (require);
exports["define"] = (define);

/***/ }),

/***/ "ff4n":
/*!***********************************!*\
  !*** ./lib/error/ErrorBuilder.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SPLoaderError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPLoaderError */ "BBmw");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _Error_resx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Error.resx */ "Z6P1");
/**
 * This class builds specific errors for sp-loader.
 * This is short-hand for all the error creation, so the production code looks cleaner.
 */




var loadComponentImplEventName = 'loadComponentImpl';
var ErrorBuilder = /** @class */ (function () {
    function ErrorBuilder() {
    }
    ErrorBuilder.buildLoadComponentError = function (manifest, error) {
        // <value>Failed to load component "{0}" ({1}).
        // Original error: {2}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadComponentError, error, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], loadComponentImplEventName, manifest.id, manifest.alias, error.message);
    };
    ErrorBuilder.buildLoadComponentReturnsEmptyError = function (manifest) {
        // <value>loadComponent() returned an empty object for component "{0}" ({1}).</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadComponentReturnsEmptyError, undefined, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], loadComponentImplEventName, manifest.id, manifest.alias);
    };
    ErrorBuilder.buildLoadComponentReturnsDefaultEmptyError = function (manifest) {
        // <value>loadComponent() returned an object with an empty default property for component "{0}" ({1}).</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadComponentReturnsDefaultEmptyError, undefined, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], loadComponentImplEventName, manifest.id, manifest.alias);
    };
    ErrorBuilder.buildLoadComponentDependencyError = function (manifest, error) {
        // <value>Failed to load component dependency "{0}" from component "{1}" ({2}).
        // Original error: {3}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadComponentDependencyError, error, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], loadComponentImplEventName, manifest.id, manifest.alias, error.message);
    };
    ErrorBuilder.buildManifestNotFoundError = function (moduleConfiguration) {
        // <value>Manifest not found for component id "{0}" and version "{1}".</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].manifestNotFoundError, undefined, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, moduleConfiguration.id, moduleConfiguration.version);
    };
    ErrorBuilder.buildLoadPathDependencyBlockedError = function (manifest, name) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load path dependency "{0}" from component "{1}" ({2}) due to another dependency that failed to load.</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadPathDependencyBlockedByAnotherDependencyError, undefined, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, name, manifest.id, manifest.alias);
    };
    ErrorBuilder.buildModuleHasUndeclaredDependencyError = function (manifest, dependencyName) {
        // tslint:disable-next-line:max-line-length
        // <value>The entry point for component "{0}" ({1}) has a dependency on "{2}" that is not declared in the manifest.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].moduleHasUndeclaredDependencyError, undefined, true, // This is an error when building the manifest/JS so it's an expected error
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, manifest.id, manifest.alias, dependencyName);
    };
    ErrorBuilder.buildLoadEntryPointError = function (manifest, error) {
        // <value>Failed to load entry point from component "{0}" ({1}).
        // Original error: {2}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadEntryPointError, error, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, manifest.id, manifest.alias, error.message);
    };
    ErrorBuilder.buildLoadPathDependencyError = function (manifest, dependencyName, error) {
        // <value>Failed to load path dependency "{0}" from component "{1}" ({2}).
        // Original error: {3}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadPathDependencyError, error, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, dependencyName, manifest.id, manifest.alias, error.message);
    };
    ErrorBuilder.buildMissingPathDependencyError = function (manifest, dependencyName) {
        // <value>Missing path dependency "{0}" from component "{1}" ({2}). Existing path dependencies: {3}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].missingPathDependencyError, undefined, true, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, dependencyName, manifest.id, manifest.alias, Object.keys(manifest.loaderConfig.scriptResources).join(_Error_resx__WEBPACK_IMPORTED_MODULE_3__["default"].listSeparator));
    };
    ErrorBuilder.buildLoadComponentDependencyFailoverPathError = function (manifest, dependencyName, failoverPath, error) {
        // <value>Failed to load component dependency "{0}" with failover path "{1}" from component "{2}" ({3}).
        // Original error: {4}</value>
        return this.buildErrorWithVerboseLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadComponentDependencyFailoverPathError, error, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadComponentLogSource"], undefined, dependencyName, failoverPath, manifest.id, manifest.alias, error.message);
    };
    ErrorBuilder.buildLoadScriptWithStringError = function () {
        // <value>loadScript function doesn't allow a string as 2nd parameter. Use ILoadScriptOptions instead.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].loadScriptWithStringError, undefined, true, // Expected error, as it is caused by a wrong input from the user
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined);
    };
    ErrorBuilder.buildUrlStatusLocalhostFileNotFoundError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The file was not found in the server.
        // Make sure that you are running 'gulp serve'.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusLocalhostFileNotFoundError, undefined, true, // Expected error, as it is caused by a user action (not running gulp serve)
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusFileNotFoundError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The file was not found in the server.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusFileNotFoundError, undefined, true, // Expected error, as it is caused by a wrong URL in the manifest
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusForbiddenError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). The access to the file is forbidden.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusForbiddenError, undefined, true, // Expected error, as it is caused by accessing a URL/CDN without permission
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusClientErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was an error requesting the file.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusClientErrorError, undefined, false, // Unexpected error
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusServerErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a problem in the server.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusServerErrorError, undefined, false, // Unexpected error
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusLocalhostNetworkErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem.
        // Make sure that you are running 'gulp serve' and you have run 'gulp trust-dev-cert'.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusLocalhostNetworkErrorError, undefined, true, // Expected error, as it is caused by a user action (not running gulp serve)
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusDocLibNetworkErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusDocLibNetworkErrorError, undefined, true, // Expected error, as it is caused by the tenant admin not enabling CDN
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusHttpsNetworkErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem.
        // This may be a problem with a HTTPS certificate. Make sure you have the right certificate.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusHttpsNetworkErrorError, undefined, true, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusNetworkErrorError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}). There was a network problem.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusNetworkErrorError, undefined, true, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildUrlStatusUndefinedError = function (manifest, resourceName, url) {
        // tslint:disable-next-line:max-line-length
        // <value>Failed to load URL '{3}' for resource '{2}' in component '{0}' ({1}) because of unknown problems.</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].urlStatusUndefinedError, undefined, false, // Unexpected error
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, manifest.id, manifest.alias, resourceName, url);
    };
    ErrorBuilder.buildScriptFailedToCreateGlobalError = function (globalName, scriptUrl) {
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].failedToCreateGlobalVariable, undefined, false, _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, globalName, scriptUrl);
    };
    ErrorBuilder.buildModuleHasFailedDependencyError = function (resource, dependency) {
        // <value>Failed to load module '{0}' because dependency {1} was not loaded</value>
        return this.buildErrorWithErrorLog(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["SPLoaderErrorCode"].dependencyLoadError, undefined, true, // Unexpected error
        _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_2__["loadScriptLogSource"], undefined, resource, dependency);
    };
    ErrorBuilder.buildErrorWithVerboseLog = function (errorCode, innerError, isExpected, source, eventName) {
        var params = []; // tslint:disable-line:no-any
        for (var _i = 5 // tslint:disable-line:no-any
        ; _i < arguments.length // tslint:disable-line:no-any
        ; _i++ // tslint:disable-line:no-any
        ) {
            params[_i - 5] = arguments[_i]; // tslint:disable-line:no-any
        }
        var error = new (_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["default"].bind.apply(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["default"], [void 0, errorCode, innerError, isExpected].concat(params)))();
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(source, error.message, eventName);
        return error;
    };
    ErrorBuilder.buildErrorWithErrorLog = function (errorCode, innerError, isExpected, source, eventName) {
        var params = []; // tslint:disable-line:no-any
        for (var _i = 5 // tslint:disable-line:no-any
        ; _i < arguments.length // tslint:disable-line:no-any
        ; _i++ // tslint:disable-line:no-any
        ) {
            params[_i - 5] = arguments[_i]; // tslint:disable-line:no-any
        }
        var error = new (_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["default"].bind.apply(_SPLoaderError__WEBPACK_IMPORTED_MODULE_1__["default"], [void 0, errorCode, innerError, isExpected].concat(params)))();
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(source, error, eventName);
        return error;
    };
    return ErrorBuilder;
}());
/* harmony default export */ __webpack_exports__["default"] = (ErrorBuilder);


/***/ }),

/***/ "fjGJ":
/*!*****************************************!*\
  !*** ./lib/utilities/PlatformLoader.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _loader_SPComponentLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../loader/SPComponentLoader */ "KZU3");
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _componentConstants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./componentConstants */ "kd3Z");
/* harmony import */ var _SPLoaderFlights__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPLoaderFlights */ "dQRF");
/* harmony import */ var _Utilities_resx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Utilities.resx */ "lcN8");
// Copyright (c) Microsoft. All rights reserved.








var TIMEOUT_IN_MILLISECONDS = 10000;
// QoS constants
var startApplicationQosScenarioName = 'SPApplicationLoader.startApplication';
var platformFailedToLoadFailure = 'PlatformFailedToLoad';
var invalidPlatformFailure = 'InvalidPlatform';
var applicationManagerStartFailure = 'ApplicationManager.Start';
var navigatorFailure = 'Navigator.navigateToApplication';
var timeoutExpectedFailure = 'Timeout';
var startLogSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('SPApplicationLoader.start');
/**
 * Platform loader.
 * Includes logic to load SPFX application platform and start applications from it.
 *
 * @internal
 */
var PlatformLoader = /** @class */ (function () {
    function PlatformLoader() {
    }
    /**
     * Loads the application platform and starts the application configured in the preloaded data.
     * Relies in SPComponentLoader to load the framework and the application components.
     *
     * @param preloadedData - Application preloaded data. Must include the application id.
     */
    PlatformLoader.startApplication = function (preloadedData, serviceScope) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(preloadedData.clientSideApplicationId, 'preloadedData.clientSideApplicationId');
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](startApplicationQosScenarioName);
        setTimeout(function () {
            if (!qosMonitor.hasEnded) {
                qosMonitor.writeExpectedFailure(timeoutExpectedFailure);
            }
        }, TIMEOUT_IN_MILLISECONDS);
        return PlatformLoader._startApplication(preloadedData, serviceScope, qosMonitor);
    };
    PlatformLoader._startApplication = function (preloadedData, serviceScope, qosMonitor) {
        var _this = this;
        function error(message, failureId) {
            var err = new Error(message);
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(startLogSource, err);
            qosMonitor.writeUnexpectedFailure(failureId, err);
            throw err;
        }
        try {
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('5022967b-461d-4d29-9ec0-6e183f976681'), '2019/8/22', 'Log service worker state')) {
                // Get Service Worker State
                if (window.navigator.serviceWorker && window.navigator.serviceWorker.controller) {
                    sessionStorage.setItem('serviceworkerstate', String(window.navigator.serviceWorker.controller.state));
                }
                else {
                    sessionStorage.removeItem('serviceworkerstate');
                }
            }
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('SetServiceWorkerStateError', error);
        }
        try {
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('fa9cc715-c765-4161-a202-dff5e2a3e0af'), '2018/2/26', 'Load platform synchronously')) {
                // Performance optimization: If sp-application-base comes from the assembly, don't load it asynchronously.
                var spAppBaseManifest = _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_4__["default"].instance.tryGetManifest(_componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"]);
                if (spAppBaseManifest) {
                    var assemblySpAppBase = _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_3__["default"].instance.tryGetComponentReference(spAppBaseManifest.id, spAppBaseManifest.version);
                    if (assemblySpAppBase) {
                        return this._executePlatformCode(assemblySpAppBase, preloadedData, serviceScope, qosMonitor, error);
                    }
                }
            }
            // sp-application-base was not loaded with the assembly. Load it asynchronously
            return this._loadSpApplicationBase(error).then(function (spApplicationBase) {
                return _this._executePlatformCode(spApplicationBase, preloadedData, serviceScope, qosMonitor, error);
            }, function (err) {
                // This is meant to catch errors in _loadSpApplicationBase, not in the then clause
                return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].platformFailedToLoadError, _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"], _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseName"]), platformFailedToLoadFailure);
            });
        }
        catch (error) {
            qosMonitor.writeUnexpectedFailure('SyncError', error);
            return Promise.reject(error);
        }
    };
    /**
     * Runs ApplicationManager.startApplication and properly catches errors coming from there.
     */
    PlatformLoader._executePlatformCode = function (spApplicationBase, preloadedData, serviceScope, qosMonitor, error) {
        if (_SPLoaderFlights__WEBPACK_IMPORTED_MODULE_6__["default"]._useNewBootSequence()) {
            return this._navigateToApplication(spApplicationBase, preloadedData, serviceScope, qosMonitor, error);
        }
        else {
            return this._runApplicationManager(spApplicationBase, preloadedData, serviceScope, qosMonitor, error);
        }
    };
    /**
     * Runs ApplicationManager.startApplication and properly catches errors coming from there.
     */
    PlatformLoader._runApplicationManager = function (spApplicationBase, preloadedData, serviceScope, qosMonitor, error) {
        if (spApplicationBase && spApplicationBase._ApplicationManager) {
            var applicationManager = new spApplicationBase._ApplicationManager(serviceScope);
            return applicationManager.startApplication(preloadedData).then(function (result) {
                qosMonitor.writeSuccess();
                return result;
            }).catch(function (e) {
                var err = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].applicationFailedToInitializeError, e));
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(startLogSource, err);
                qosMonitor.writeExpectedFailure(applicationManagerStartFailure, err);
                throw err;
            });
        }
        else {
            return Promise.resolve().then(function () { return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].platformFailedToLoadError, _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"], _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseName"]), invalidPlatformFailure); });
        }
    };
    /**
     * Runs Navigator.navigateToApplication and properly catches errors coming from there.
     */
    PlatformLoader._navigateToApplication = function (spApplicationBase, preloadedData, serviceScope, qosMonitor, error) {
        if (spApplicationBase && spApplicationBase._Navigator) {
            var applicationManager = new spApplicationBase._Navigator(serviceScope);
            return applicationManager.navigateToApplication(preloadedData).then(function (result) {
                qosMonitor.writeSuccess();
                return result;
            }).catch(function (e) {
                var err = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].applicationFailedToInitializeError, e));
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(startLogSource, err);
                qosMonitor.writeExpectedFailure(navigatorFailure, err);
                throw err;
            });
        }
        else {
            return Promise.resolve().then(function () { return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].platformFailedToLoadError, _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"], _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseName"]), invalidPlatformFailure); });
        }
    };
    /**
     * Loads sp-application-base component.
     * Rejects the promise if sp-application-base can't be loaded.
     */
    PlatformLoader._loadSpApplicationBase = function (error) {
        return _loader_SPComponentLoader__WEBPACK_IMPORTED_MODULE_2__["SPComponentLoader"].loadComponentById(_componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"])
            .catch(function (e) {
            return error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_Utilities_resx__WEBPACK_IMPORTED_MODULE_7__["default"].platformFailedToLoadWithMessageError, _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseComponentId"], _componentConstants__WEBPACK_IMPORTED_MODULE_5__["spApplicationBaseName"], e.message), platformFailedToLoadFailure);
        });
    };
    return PlatformLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (PlatformLoader);


/***/ }),

/***/ "gsvc":
/*!***************************************************!*\
  !*** ./lib/systemjs/SPSystemJsComponentLoader.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _loader_BaseComponentLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../loader/BaseComponentLoader */ "Uk6p");
/* harmony import */ var _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/ErrorBuilder */ "ff4n");
/* harmony import */ var _error_SPLoaderError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/SPLoaderError */ "BBmw");
/* harmony import */ var _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../stores/ComponentStore */ "eaMA");
/* harmony import */ var _utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/telemetryConstants */ "4mHd");
/* harmony import */ var _utilities_ComponentOverrider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/ComponentOverrider */ "A8iV");
/* harmony import */ var _loader_loadComponent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../loader/loadComponent */ "aghm");
/* harmony import */ var _SystemJsLoader__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SystemJsLoader */ "U29/");
// Copyright (c) Microsoft. All rights reserved.
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();










/**
 * The component loader for SPFx.
 * This implementation uses SystemJS as the internal module loader.
 *
 * @alpha
 */
var SPSystemJsComponentLoader = /** @class */ (function (_super) {
    __extends(SPSystemJsComponentLoader, _super);
    // Initialization
    /**
     * @internal
     */
    function SPSystemJsComponentLoader(serviceScope) {
        var _this = _super.call(this, serviceScope) || this;
        _this._systemJsLoader = serviceScope.consume(_SystemJsLoader__WEBPACK_IMPORTED_MODULE_9__["default"].serviceKey);
        return _this;
    }
    // Public API
    /**
     * Given a URL, load a script.
     *
     * @param url     - The script URL.
     * @param options - globalExportsName: If the script isn't an AMD module and loads a global member on the page,
     *                    specify the global member's name.
     * @returns         A promise containing the loaded module.
     */
    SPSystemJsComponentLoader.prototype.loadScript = function (url, options) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(url, 'url');
        if (typeof options === 'string') {
            throw _error_ErrorBuilder__WEBPACK_IMPORTED_MODULE_3__["default"].buildLoadScriptWithStringError();
        }
        var globalMetaConfig = {
            meta: {}
        };
        // This ensures that SystemJS can execute a script that doesn't have any output
        globalMetaConfig.meta[url] = {
            scriptLoad: false
        };
        if (options) {
            if (options.globalExportsName) {
                globalMetaConfig.meta[url] = {
                    format: 'global',
                    exports: options.globalExportsName
                };
            }
        }
        this._systemJsLoader.systemConfig(globalMetaConfig);
        return this._systemJsLoader.systemImport(url);
    };
    /**
     * Loads a component from a manifest.
     *
     * @param manifest - Manifest of the module to load.
     * @returns          A promise containing the loaded module.
     */
    SPSystemJsComponentLoader.prototype.loadComponent = function (manifest) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](_utilities_telemetryConstants__WEBPACK_IMPORTED_MODULE_6__["loadComponentQosScenarioName"]);
        var qosExtraData = this._buildQosExtraData(manifest);
        return Object(_loader_loadComponent__WEBPACK_IMPORTED_MODULE_8__["default"])(manifest, this._systemJsLoader)
            .then(function (component) {
            qosMonitor.writeSuccess(qosExtraData);
            return component;
        })
            .catch(function (error) {
            return _this._handleLoadComponentError(error, manifest, qosMonitor, qosExtraData);
        });
    };
    SPSystemJsComponentLoader.prototype._overrideComponent = function (componentId, componentModule) {
        _utilities_ComponentOverrider__WEBPACK_IMPORTED_MODULE_7__["default"].overrideComponent(componentId, componentModule, this._serviceScope, _SystemJsLoader__WEBPACK_IMPORTED_MODULE_9__["default"].serviceKey);
    };
    SPSystemJsComponentLoader.prototype._unloadComponent = function (manifest) {
        if (_stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.tryGetComponent(manifest.id, manifest.version)) {
            _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.deleteComponent(manifest.id, manifest.version);
            this._systemJsLoader.systemDelete(manifest);
        }
    };
    /**
     * Workaround for ListView host app, as there are problems when using SystemJS and RequireJS together.
     * By configuring SystemJS scriptLoad = false it ensures that the "define" definition in the window is
     * the one from RequireJS
     * @override
     */
    SPSystemJsComponentLoader.prototype._listViewHostWorkaround = function (preloadedData) {
        if (preloadedData.clientSideApplicationId === 'b1ab4aaa-f779-405c-8683-d3a750b5d18d') {
            this._systemJsLoader._baseSystemConfig(_SystemJsLoader__WEBPACK_IMPORTED_MODULE_9__["default"].pluginName, /* scriptLoad */ false);
        }
    };
    SPSystemJsComponentLoader.prototype._buildQosExtraData = function (manifest) {
        return {
            manifestId: manifest.id,
            version: manifest.version,
            alias: manifest.alias,
            isInternal: manifest.isInternal,
            isDebug: manifest._isDebug,
            loader: 'systemjs'
        };
    };
    SPSystemJsComponentLoader.prototype._handleLoadComponentError = function (error, manifest, qosMonitor, qosExtraData) {
        if (error instanceof _error_SPLoaderError__WEBPACK_IMPORTED_MODULE_4__["default"] && error.isExpected) {
            qosMonitor.writeExpectedFailure(undefined, error, qosExtraData);
        }
        else {
            qosMonitor.writeUnexpectedFailure(undefined, error, qosExtraData);
        }
        // If it fails to load, the caller can then call loadComponent() again and not hit the cache
        _stores_ComponentStore__WEBPACK_IMPORTED_MODULE_5__["default"].instance.deleteComponent(manifest.id, manifest.version);
        throw error;
    };
    return SPSystemJsComponentLoader;
}(_loader_BaseComponentLoader__WEBPACK_IMPORTED_MODULE_2__["BaseComponentLoader"]));
/* harmony default export */ __webpack_exports__["default"] = (SPSystemJsComponentLoader);


/***/ }),

/***/ "jLfe":
/*!***********************************************!*\
  !*** ./lib/utilities/normalizeComponentId.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponentId; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Given a component id and version, gives a normalized string that includes both string and version.
 * Used internally to provide a common way to refer to id + version in different classes.
 *
 * Example:
 * { id: d1d91016-032f-456d-98a4-721247c305e8, version: 1.0.0 } -> d1d91016-032f-456d-98a4-721247c305e8_1.0.0
 */
function normalizeComponentId(id, version) {
    id = (typeof id === 'string') ? _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(id) : id;
    version = (typeof version === 'string') ? _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Version"].parse(version) : version;
    return id.toString() + "_" + version.toString();
}


/***/ }),

/***/ "jOlS":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_jOlS__;

/***/ }),

/***/ "kd3Z":
/*!*********************************************!*\
  !*** ./lib/utilities/componentConstants.js ***!
  \*********************************************/
/*! exports provided: reactComponentId, reactDomComponentId, spApplicationBaseComponentId, listViewHostComponentId, classicPageAppComponentId, react16Version, spApplicationBaseName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reactComponentId", function() { return reactComponentId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reactDomComponentId", function() { return reactDomComponentId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spApplicationBaseComponentId", function() { return spApplicationBaseComponentId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "listViewHostComponentId", function() { return listViewHostComponentId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classicPageAppComponentId", function() { return classicPageAppComponentId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "react16Version", function() { return react16Version; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spApplicationBaseName", function() { return spApplicationBaseName; });
// IDs
var reactComponentId = '0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d';
var reactDomComponentId = 'aa0a46ec-1505-43cd-a44a-93f3a5aa460a';
var spApplicationBaseComponentId = '4df9bb86-ab0a-4aab-ab5f-48bf167048fb';
var listViewHostComponentId = 'b1ab4aaa-f779-405c-8683-d3a750b5d18d';
var classicPageAppComponentId = 'eb4b666b-5c29-4dad-9a99-23613f21a2b7';
// Versions
var react16Version = '16.8.5';
// Names
var spApplicationBaseName = '@microsoft/sp-application-base';


/***/ }),

/***/ "lcN8":
/*!*****************************************!*\
  !*** ./lib/utilities/Utilities.resx.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_KuTfBwDffam4eyPQEJupWw';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "mKTs":
/*!***************************************************************************************!*\
  !*** ./lib/DeveloperTools/BrowserDeveloperToolsWarning/showBrowserDevToolsWarning.js ***!
  \***************************************************************************************/
/*! exports provided: showBrowserDevToolsWarning */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showBrowserDevToolsWarning", function() { return showBrowserDevToolsWarning; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _BrowserDeveloperToolsWarning_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BrowserDeveloperToolsWarning.resx */ "H/UD");


var WARNING_URL = 'https://technet.microsoft.com/en-us/library/bb794823.aspx';
function showBrowserDevToolsWarning() {
    var browserInfo = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_BrowserDetection"].getBrowserInformation();
    var warningHeading = _BrowserDeveloperToolsWarning_resx__WEBPACK_IMPORTED_MODULE_1__["default"].warningHeading;
    var warningLine1 = _BrowserDeveloperToolsWarning_resx__WEBPACK_IMPORTED_MODULE_1__["default"].warningLine1;
    var warningLine2 = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_BrowserDeveloperToolsWarning_resx__WEBPACK_IMPORTED_MODULE_1__["default"].warningLine2, WARNING_URL);
    if (browserInfo.browser === 1 /* Chrome */ ||
        browserInfo.browser === 3 /* Firefox */ ||
        browserInfo.browser === 5 /* Safari */) {
        var stylesCss =  false
            ? undefined
            : __webpack_require__(/*! !raw-loader!./BrowserDeveloperToolsWarning.css */ "QcRg");
        // Parse out the styles from the CSS file
        var headingCss = (stylesCss.match(/\.heading\s*{([^}]+)}/) || [])[1];
        var otherLinesCss = (stylesCss.match(/\.otherLines\s*{([^}]+)}/) || [])[1];
        // Formatting supported
        console.log("\n%c" + warningHeading + "%c\n" + warningLine1 + "\n\n" + warningLine2 + "\n\n", headingCss, otherLinesCss);
    }
    else {
        // No formatting
        console.log("\n" + warningHeading + "\n" + warningLine1 + "\n\n" + warningLine2 + "\n\n");
    }
}


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: SPComponentLoader, _SPStarter, _SPLoaderFlights, _ManifestStore, _ManifestProvider, _RootServiceScopeBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _loader_SPComponentLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loader/SPComponentLoader */ "KZU3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPComponentLoader", function() { return _loader_SPComponentLoader__WEBPACK_IMPORTED_MODULE_0__["SPComponentLoader"]; });

/* harmony import */ var _starter_SPStarter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./starter/SPStarter */ "wMLj");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPStarter", function() { return _starter_SPStarter__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _utilities_SPLoaderFlights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities/SPLoaderFlights */ "dQRF");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPLoaderFlights", function() { return _utilities_SPLoaderFlights__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stores/ManifestStore */ "Eke5");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ManifestStore", function() { return _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _stores_ManifestProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stores/ManifestProvider */ "Y/fc");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ManifestProvider", function() { return _stores_ManifestProvider__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _utilities_RootServiceScopeBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utilities/RootServiceScopeBuilder */ "pydo");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_RootServiceScopeBuilder", function() { return _utilities_RootServiceScopeBuilder__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/**
 * The SharePoint Framework loader
 *
 * @remarks
 * Built on familiar standards such as RequireJS and WebPack,
 * the loader is the first part of the SharePoint Framework to load on a page.
 * It manages versioning and loading of client-side components.
 *
 * @packagedocumentation
 */
// Static proxies for the API








/***/ }),

/***/ "pydo":
/*!**************************************************!*\
  !*** ./lib/utilities/RootServiceScopeBuilder.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-dynamic-data */ "84nK");
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__);
var __assign = (undefined && undefined.__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);
};





/**
 * Builds a new root service scope, initialized with the preloaded data.
 *
 * @remarks
 * This should only be created once, at the initialization of SPFx.
 *
 * @internal
 */
var RootServiceScopeBuilder = /** @class */ (function () {
    function RootServiceScopeBuilder() {
    }
    /**
     * Creates a root service scope and it initializes with SPFx services (page context, http clients)
     */
    RootServiceScopeBuilder.build = function (preloadedData) {
        var serviceScope = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceScope"].startNewRoot();
        serviceScope.provide(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_logSourceServiceKey"], RootServiceScopeBuilder._logSource);
        serviceScope.createDefaultAndProvide(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__["PageContext"].serviceKey);
        serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"].serviceKey);
        var spHttpClient = serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["SPHttpClient"].serviceKey);
        serviceScope.createDefaultAndProvide(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_1__["_DynamicDataUtilities"].IDynamicDataManagerServiceKey);
        var _graphContext = serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["_GraphHttpClientContext"].serviceKey);
        var digestCache = serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["DigestCache"].serviceKey);
        serviceScope.finish();
        this._initializeGraphHttpClient(_graphContext, preloadedData, spHttpClient);
        this._initializeDigestCache(digestCache, preloadedData);
        return serviceScope;
    };
    RootServiceScopeBuilder._initializeGraphHttpClient = function (graphContext, preloadedData, spHttpClient) {
        // We don't want to initialize AAD/Graph client assets for On-Prem/Workbench until
        // these scenarios are supported.
        if (  true && _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"].type !== _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].Local) {
            graphContext.initialize(preloadedData.spPageContextInfo.webServerRelativeUrl, preloadedData.spPageContextInfo.msGraphEndpointUrl, preloadedData.spPageContextInfo.webAbsoluteUrl);
            try {
                var redirectUri = RootServiceScopeBuilder.FLUID_DOMAINS.indexOf(window.location.host) > -1 ?
                    window.location.origin + '/spfxsinglesignon' :
                    window.location.origin + '/_forms/' + _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["_AadConstants"].SPFX_SINGLE_SIGN_ON_REPLY_URL;
                var _a = preloadedData.spPageContextInfo, aadInstanceUrl = _a.aadInstanceUrl, aadTenantId = _a.aadTenantId, aadUserId = _a.aadUserId, isAnonymousGuestUser = _a.isAnonymousGuestUser, isExternalGuestUser = _a.isExternalGuestUser, spfxOBOFlowEnabled = _a.spfxOBOFlowEnabled, userPrincipalName = _a.userPrincipalName;
                var defaultAadConfiguration = {
                    aadInstanceUrl: aadInstanceUrl,
                    aadTenantId: aadTenantId,
                    aadUserId: aadUserId,
                    redirectUri: redirectUri,
                    servicePrincipalId: '',
                    userPrincipalName: userPrincipalName
                };
                // Guest and External Users won't be able to retrieve tokens if a UPN is provided
                if (isAnonymousGuestUser || isExternalGuestUser) {
                    defaultAadConfiguration.userPrincipalName = undefined;
                }
                // @todo [VSO:SPPLAT:770273] [ADAL] Deprecate userPrincipalName property and add loginHint property
                if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(RootServiceScopeBuilder.upnGuestUserGuid, '9/4/19', 'Provide user email for guest and external users') &&
                    isAnonymousGuestUser || isExternalGuestUser) {
                    defaultAadConfiguration.userPrincipalName = preloadedData.spPageContextInfo.userEmail;
                }
                var preconfiguredAppConfiguration = __assign({}, defaultAadConfiguration, { servicePrincipalId: _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["_AadConstants"].PRE_AUTHORIZED_APP_PRINCIPAL_ID });
                if (spfxOBOFlowEnabled &&
                    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_BrowserUtilities"].isMobileWebView() ||
                    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_BrowserUtilities"].isWebViewHosted()) {
                    _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["_AadTokenProviders"]._initialize(new _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["AadTokenProvider"](__assign({}, defaultAadConfiguration, { servicePrincipalId: preloadedData.spPageContextInfo.spfx3rdPartyServicePrincipalId }), {
                        serverRelativeUrl: preloadedData.spPageContextInfo.webAbsoluteUrl,
                        spHttpClient: spHttpClient
                    }), preconfiguredAppConfiguration);
                }
                else {
                    _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["_AadTokenProviders"]._initialize(new _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["AadTokenProvider"](__assign({}, defaultAadConfiguration, { servicePrincipalId: preloadedData.spPageContextInfo.spfx3rdPartyServicePrincipalId })), preconfiguredAppConfiguration);
                }
            }
            catch (e) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_TraceLogger"].logVerbose(this._logSource, 'AadTokenProviders: Failed to initialize');
            }
        }
    };
    RootServiceScopeBuilder._initializeDigestCache = function (digestCache, preloadedData) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(preloadedData, 'preloadedData');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(preloadedData.spPageContextInfo, 'preloadedData.spPageContextInfo');
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_TraceLogger"].logVerbose(this._logSource, 'ServiceScopeBuilder: Added preloaded FormDigestValue to cache');
        if (preloadedData.spPageContextInfo) {
            var expirationTimestamp = void 0;
            // Value of serverTime is same as what comes as part of formDigestValue
            // but is in locale neutral ISO 8601 format. So it will get correctly
            // parsed by Date class irrespective of client locale.
            // serverTime is accurate to the order of ms, while DateTime which comes
            // as part of formDigestValue is trimmed to order of seconds. Subtract
            // 30s from expirationTimeStamp to avoid any timing errors b/w server and client
            var serverTimeInMs = new Date(preloadedData.spPageContextInfo.serverTime).getTime();
            expirationTimestamp = serverTimeInMs +
                (1000 * preloadedData.spPageContextInfo.formDigestTimeoutSeconds) -
                this.PRELOAD_DIGEST_EXPIRATION_SLOP_MS;
            digestCache.addDigestToCache(preloadedData.spPageContextInfo.webServerRelativeUrl, preloadedData.spPageContextInfo.formDigestValue, expirationTimestamp);
            digestCache.addDigestToCache(preloadedData.spPageContextInfo.webAbsoluteUrl, preloadedData.spPageContextInfo.formDigestValue, expirationTimestamp);
        }
    };
    /**
     * Log source for the root service scope
     */
    RootServiceScopeBuilder._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_LogSource"].create('RootServiceScope');
    RootServiceScopeBuilder.upnGuestUserGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('411f7ef9-c165-45db-b054-7a4692612643');
    // Estimates the lag between when the server generated the form digest, and when
    // performance.now() started measuring the browser page
    RootServiceScopeBuilder.PRELOAD_DIGEST_EXPIRATION_SLOP_MS = 30000; // 30 secs
    RootServiceScopeBuilder.FLUID_DOMAINS = [
        'dev.fluid.office.com',
        'dev.fluidpreview.office.net',
        'fluidpreview.office.net'
    ];
    return RootServiceScopeBuilder;
}());
/* harmony default export */ __webpack_exports__["default"] = (RootServiceScopeBuilder);


/***/ }),

/***/ "qoaT":
/*!***********************************!*\
  !*** ./lib/loader/Loader.resx.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_F4HRA/FKfb0X6JapWo2vTw';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "td2X":
/*!************************************************!*\
  !*** ./lib/utilities/LoadComponentExecutor.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var LoadComponentExecutor = /** @class */ (function () {
    // tslint:disable-next-line:no-any
    function LoadComponentExecutor(loadFunction) {
        this._pendingLoads = [];
        this._loadFunction = loadFunction;
    }
    LoadComponentExecutor.prototype.setAlternativeExecutor = function (executor) {
        this._alternativeExecutor = executor;
        executor._alternativeExecutor = this;
    };
    LoadComponentExecutor.prototype.loadComponent = function (manifest) {
        var _this = this;
        if (!this._canRunLoad()) {
            return new Promise(function (resolve, reject) {
                _this._pendingLoads.push(function () {
                    _this.loadComponent(manifest).then(resolve, reject);
                });
            });
        }
        this._incrementActiveLoads();
        return this._loadFunction(manifest).then(function (module) {
            _this._decrementActiveLoads();
            return module;
        }, function (error) {
            _this._decrementActiveLoads();
            throw error;
        });
    };
    Object.defineProperty(LoadComponentExecutor.prototype, "isRunning", {
        /**
         * Returns true if SystemJS is currently running any loadComponent() call.
         *
         * @remarks
         * This is used to ensure that SystemJS will not run while RequireJS is not done with all loads.
         */
        get: function () {
            return this._activeLoads > 0;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * When called, executes all the loadComponent() calls that couldn't be executed before.
     *
     * @remarks
     * This is used to ensure that we don't run SystemJS while RequireJS is not done trying to load a component.
     */
    LoadComponentExecutor.prototype.processPendingLoads = function () {
        var _loadsToRun = this._pendingLoads;
        this._pendingLoads = [];
        _loadsToRun.forEach(function (load) { return load(); });
    };
    /**
     * Returns true if loadComponent() can be executed.
     *
     * @remarks
     * It just checks that RequireJS is not running at the time, as both can't work at the same time.
     */
    LoadComponentExecutor.prototype._canRunLoad = function () {
        return !this._alternativeExecutor || !this._alternativeExecutor.isRunning;
    };
    /**
     * Increments the number of active loads.
     */
    LoadComponentExecutor.prototype._incrementActiveLoads = function () {
        this._activeLoads++;
    };
    /**
     * Decrements the number of active loads.
     * When there are no active loads, it tries to load any pending request in RequireJS.
     */
    LoadComponentExecutor.prototype._decrementActiveLoads = function () {
        this._activeLoads--;
        if (this._activeLoads === 0 && this._alternativeExecutor) {
            this._alternativeExecutor.processPendingLoads();
        }
    };
    return LoadComponentExecutor;
}());
/* harmony default export */ __webpack_exports__["default"] = (LoadComponentExecutor);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vlQI":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vlQI__;

/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "wMLj":
/*!**********************************!*\
  !*** ./lib/starter/SPStarter.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _debug_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../debug/confirmDebugAllowed */ "MqKS");
/* harmony import */ var _debug_DebugManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../debug/DebugManager */ "GV8Z");
/* harmony import */ var _DeveloperTools_BrowserDeveloperToolsWarning_showBrowserDevToolsWarning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../DeveloperTools/BrowserDeveloperToolsWarning/showBrowserDevToolsWarning */ "mKTs");
/* harmony import */ var _DeveloperTools_DeveloperToolsLoader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../DeveloperTools/DeveloperToolsLoader */ "IG7x");
/* harmony import */ var _DeveloperTools_DeveloperToolsProxy__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../DeveloperTools/DeveloperToolsProxy */ "2clK");
/* harmony import */ var _requirejs_SPRequireJsComponentLoader__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../requirejs/SPRequireJsComponentLoader */ "++S4");
/* harmony import */ var _requirejs_SystemJsFallbackLoader__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../requirejs/SystemJsFallbackLoader */ "PypK");
/* harmony import */ var _stores_LocaleStore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../stores/LocaleStore */ "XZXY");
/* harmony import */ var _stores_ManifestProvider__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../stores/ManifestProvider */ "Y/fc");
/* harmony import */ var _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../stores/ManifestStore */ "Eke5");
/* harmony import */ var _systemjs_SPSystemJsComponentLoader__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../systemjs/SPSystemJsComponentLoader */ "gsvc");
/* harmony import */ var _utilities_BrowserSupport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utilities/BrowserSupport */ "JWqh");
/* harmony import */ var _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utilities/componentConstants */ "kd3Z");
/* harmony import */ var _utilities_KillSwitches__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utilities/KillSwitches */ "HLbO");
/* harmony import */ var _utilities_RootServiceScopeBuilder__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utilities/RootServiceScopeBuilder */ "pydo");
/* harmony import */ var _Starter_resx__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Starter.resx */ "FcGP");
/**
 * @Copyright (c) Microsoft Corporation.  All rights reserved.
 */



















// !!! Show the developer tools warning as soon as the page loads !!!
if (false) {}
var REQUIREJS_FLIGHT_ID = 125;
var ARIA_DISABLE_TELEMETRY_LOGGING_FLIGHT_ID = 1190;
var DEBUG_FLIGHTS_QUERY_PARAM = 'debugFlights';
var DEBUG_KILLSWITCHES_QUERY_PARAM = 'debugKillSwitches';
var COMPONENT_LOADER_GLOBAL_VARIABLE = '_spComponentLoader';
// QoS constants
var startQosScenarioName = 'SPComponentLoader.start';
/**
 * Bootstrapper for the application
 * @internal
 */
var SPStarter = /** @class */ (function () {
    function SPStarter() {
    }
    /**
     * Sets a map with the bundled components. These components will be added to the component loader
     * during initialization, so they won't need to be loaded afterwards.
     * The map is of the form `componentId: string -> component: Object`
     *
     * @internal
     */
    SPStarter._setBundledComponents = function (bundledComponents) {
        if (!SPStarter._bundledComponents) {
            SPStarter._bundledComponents = bundledComponents;
        }
        else {
            throw new Error('Bundled components can be only set once'); // TODO mpasarin: Localize
        }
    };
    /**
     * This is called by the page scripts to start loading the framework. Do not call it from your own code.
     *
     * @param handleFailure - Error handler function provided by the server to execute if there is SPFx can't be loaded.
     *  It may redirect to an error page or log error data in the console.
     * @param debugData - This parameter is used when the loader initializes a debug loader and
     *  should never be provided by any external callers.
     * @param skipTelemetry - Do not set this parameter to true unless it is a non-production scenario.
     */
    SPStarter.start = function (preloadedData, handleFailure, debugData, skipTelemetry) {
        var _this = this;
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__["_PerformanceLogger"].devMark('SPStarter.start');
        if (!preloadedData || !preloadedData.spPageContextInfo) {
            var error = new Error(_Starter_resx__WEBPACK_IMPORTED_MODULE_18__["default"].invalidPreloadedDataError);
            handleFailure({
                error: error,
                message: _Starter_resx__WEBPACK_IMPORTED_MODULE_18__["default"].loaderUserFriendlyError,
                operationName: 'InvalidPreloadedData'
            });
            return Promise.reject(error);
        }
        var correlationId = preloadedData.spPageContextInfo.CorrelationId;
        // Check for browser compatibility
        var browserCompatibility = SPStarter.getBrowserCompatibility();
        if (browserCompatibility.supportLevel === 3 /* Blocked */) {
            return this.handleError(new Error(browserCompatibility.warning), _Starter_resx__WEBPACK_IMPORTED_MODULE_18__["default"].browserNotSupportedError, 'BrowserNotSupported', correlationId, preloadedData);
        }
        // Initialize flights and killswitches
        this._initializeFlightsAndKillswitches(preloadedData);
        if (debugData &&
            !_utilities_KillSwitches__WEBPACK_IMPORTED_MODULE_16__["KillSwitches"].isDangerouslyEnableDebugKillSwitchActivated()) {
            Object(_debug_confirmDebugAllowed__WEBPACK_IMPORTED_MODULE_3__["dangerouslyEnableDebug"])();
        }
        var serviceScope = _utilities_RootServiceScopeBuilder__WEBPACK_IMPORTED_MODULE_17__["default"].build(preloadedData);
        _stores_ManifestStore__WEBPACK_IMPORTED_MODULE_12__["default"].instance._setManifestProvider(new _stores_ManifestProvider__WEBPACK_IMPORTED_MODULE_11__["default"](serviceScope, preloadedData.spPageContextInfo.webAbsoluteUrl));
        var spLoader = __webpack_require__(/*! ../index */ "mwqp");
        var componentLoader = this._useRequireJs(preloadedData)
            ? new _requirejs_SPRequireJsComponentLoader__WEBPACK_IMPORTED_MODULE_8__["default"](serviceScope, new _requirejs_SystemJsFallbackLoader__WEBPACK_IMPORTED_MODULE_9__["default"](serviceScope))
            : new _systemjs_SPSystemJsComponentLoader__WEBPACK_IMPORTED_MODULE_13__["default"](serviceScope);
        var qosMonitor = undefined;
        try {
            // Initialize telemetry
            if (!skipTelemetry) {
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Log"]._initialize(new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogHandler"]());
            }
            SPStarter._initializeEnvironment(preloadedData);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Session"]._initialize({ applicationId: preloadedData.spPageContextInfo.CorrelationId });
            if (!skipTelemetry) {
                SPStarter._initializeTelemetry(preloadedData);
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__["_PerformanceLogger"].markSpLoaderStart();
                // Ensure that Telemetry logs in real time, if not already doing so
                window.setTimeout(function () {
                    SPStarter._logDataInRealTime();
                }, SPStarter._realTimeProcessingWaitTime);
            }
            qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](startQosScenarioName);
            if (!preloadedData.buildNumber) {
                throw new Error('Missing build number in preloaded data.');
            }
            // Set locale
            _stores_LocaleStore__WEBPACK_IMPORTED_MODULE_10__["default"].setLocale(preloadedData.spPageContextInfo.currentUICultureName);
            // Initialize the proxies
            componentLoader._initialize(preloadedData, SPStarter._getBundledComponents(), debugData || {});
            spLoader.SPComponentLoader._initialize(componentLoader);
            window[COMPONENT_LOADER_GLOBAL_VARIABLE] = spLoader.SPComponentLoader;
        }
        catch (error) {
            return Promise.reject(error);
        }
        // Support "debugLayout" query param. This is used only for the Teams tab in SharePoint testing
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1086 /* SppplatTeamsTabWebPart */)) {
            var queryParams = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["UrlQueryParameterCollection"](window.location.href);
            var debugLayout = queryParams.getValue('debugLayout');
            if (debugLayout && preloadedData.item) {
                // tslint:disable-next-line:no-string-literal
                preloadedData.item['PageLayoutType'] = debugLayout;
            }
        }
        return _debug_DebugManager__WEBPACK_IMPORTED_MODULE_4__["DebugManager"].initialize(componentLoader, debugData).then(function (debugLoadResult) {
            if (debugLoadResult.debugLoader) {
                // If we're loading a debug loader, call "start" on it instead of continuing with the normal initialization
                // flow
                componentLoader._unloadComponents();
                return debugLoadResult.debugLoader.start(preloadedData, handleFailure, debugLoadResult);
            }
            // Load the dev tools after the debug loader to reference the right diagnostics component
            _DeveloperTools_DeveloperToolsProxy__WEBPACK_IMPORTED_MODULE_7__["default"].initialize(_DeveloperTools_DeveloperToolsLoader__WEBPACK_IMPORTED_MODULE_6__);
            if (preloadedData.clientSideApplicationId) {
                // Start the application
                return spLoader.SPComponentLoader._startApplication(preloadedData).then(function (application) {
                    qosMonitor.writeSuccess();
                    return application;
                }).catch(function (error) {
                    if (error.message === 'Out of stack space') {
                        qosMonitor.writeExpectedFailure('ConflictingPolyfill', error);
                    }
                    else {
                        qosMonitor.writeUnexpectedFailure('StartApplication', error);
                    }
                    return _this.handleError(error, _Starter_resx__WEBPACK_IMPORTED_MODULE_18__["default"].loaderUserFriendlyError, 'StartApplication', correlationId, preloadedData);
                });
            }
            else {
                // If there is no application to load, just return void
                qosMonitor.writeSuccess();
                return Promise.resolve();
            }
        }).then(function (application) {
            // Log telemetry data from buffers to the server
            if (!skipTelemetry) {
                SPStarter._logDataInRealTime();
            }
            return application;
        }).catch(function (error) {
            if (qosMonitor) {
                qosMonitor.writeUnexpectedFailure(undefined, error);
            }
            if (!skipTelemetry) {
                SPStarter._logDataInRealTime();
            }
            return _this.handleError(error, _Starter_resx__WEBPACK_IMPORTED_MODULE_18__["default"].loaderUserFriendlyError, _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__["_Telemetry"].isInitialized ? 'ClientError' : 'ClientErrorBeforeTelemetry', correlationId, preloadedData);
        });
    };
    /**
     * Returns the support level for the browser.
     *
     * There are some specific browsers that we know don't work with SPFx, and some
     * features that the browser needs to support for SPFx. In those cases the page
     * shouldn't even try to load.
     *
     * This is intended to be called by the page scripts before start.
     * There is no need, and no use, to call it from your own code.
     */
    SPStarter.getBrowserCompatibility = function () {
        return _utilities_BrowserSupport__WEBPACK_IMPORTED_MODULE_14__["default"].getBrowserCompatibility();
    };
    SPStarter._logDataInRealTime = function () {
        if (!SPStarter._isTelemetryDisabled() && !SPStarter._isTelemetryLoggingInRealTime) {
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__["_Telemetry"].startRealTimeProcessing();
            SPStarter._isTelemetryLoggingInRealTime = true;
        }
    };
    /**
     * Returns the bundled components variable, after checking it exists.
     * If it doesn't exist, it throws an error as SPFx cannot be initialized without it.
     */
    SPStarter._getBundledComponents = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(SPStarter._bundledComponents, 'bundledComponents');
        return SPStarter._bundledComponents;
    };
    SPStarter._initializeEnvironment = function (preloadedData) {
        var type;
        /* tslint:disable:no-string-literal */
        if (window.location.hostname === 'localhost' ||
            window['ENVIRONMENTTYPE'] &&
                window['ENVIRONMENTTYPE'] === 'Local') {
            /* tslint:enable:no-string-literal */
            type = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].Local;
        }
        else if (preloadedData.clientSideApplicationId === 'eb4b666b-5c29-4dad-9a99-23613f21a2b7') {
            // 'eb4b666b-5c29-4dad-9a99-23613f21a2b7' is the classic page application id.
            type = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].ClassicSharePoint;
        }
        else {
            type = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].SharePoint;
        }
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"]._initialize({ type: type });
    };
    SPStarter._initializeTelemetry = function (preloadedData) {
        if (SPStarter._isTelemetryDisabled()) {
            return;
        }
        var clientSideApplicationId = preloadedData.clientSideApplicationId, item = preloadedData.item, manifests = preloadedData.manifests, spPageContextInfo = preloadedData.spPageContextInfo;
        var pageContextInfo = spPageContextInfo;
        var completenessUrls = pageContextInfo.completenessUrls, CorrelationId = pageContextInfo.CorrelationId, currentUICultureName = pageContextInfo.currentUICultureName, env = pageContextInfo.env, farmLabel = pageContextInfo.farmLabel, listId = pageContextInfo.listId, siteId = pageContextInfo.siteId, siteSubscriptionId = pageContextInfo.siteSubscriptionId, systemUserKey = pageContextInfo.systemUserKey, userLoginName = pageContextInfo.userLoginName, webId = pageContextInfo.webId, webTemplate = pageContextInfo.webTemplate;
        var listItemUniqueId = item && item.UniqueId;
        // The first manifest is always the application's manifest.
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_2__["_Telemetry"].initialize(manifests[0].alias, {
            environment: env,
            farmLabel: farmLabel,
            clientSideApplicationId: clientSideApplicationId || '',
            siteSubscriptionId: siteSubscriptionId,
            buildNumber: preloadedData.buildNumber,
            loginName: userLoginName,
            systemUserKey: systemUserKey,
            currentUICultureName: currentUICultureName,
            correlationId: CorrelationId,
            enableConsoleLog: SPStarter._isConsoleLogEnabled(),
            siteId: siteId,
            webId: webId,
            webTemplateId: webTemplate,
            completenessCallbackEndpoint: this._extractCompletenessCallbackEndpoint(completenessUrls),
            listId: listId,
            listItemUniqueId: listItemUniqueId
        });
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_Diagnostics"].initialize({
            enableConsoleLog: SPStarter._isConsoleLogEnabled(),
            siteId: siteId,
            webId: webId,
            listId: listId,
            listItemUniqueId: listItemUniqueId,
            correlationId: CorrelationId
        });
    };
    SPStarter._initializeFlightsAndKillswitches = function (preloadedData) {
        // Initialize flights and killswitches with the data from the server
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].initialize(preloadedData.spPageContextInfo.ExpFeatures);
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].initialize(preloadedData.spPageContextInfo.killSwitches);
        // Initialize debug flights and killswitches from the query params
        var allowDebugQueryParameter = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isDebugFlightEnabled
            || _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"].type === _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].Local;
        if (allowDebugQueryParameter) {
            var queryParams = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["UrlQueryParameterCollection"](window.location.href);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].setDebugFlights(queryParams.getValue(DEBUG_FLIGHTS_QUERY_PARAM));
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].setDebugKillswitches(queryParams.getValue(DEBUG_KILLSWITCHES_QUERY_PARAM));
        }
    };
    SPStarter._isQueryParameterTrue = function (name) {
        var parameterValue;
        try {
            var queryParams = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["UrlQueryParameterCollection"](window.location.href);
            parameterValue = queryParams.getValue(name) === 'true';
        }
        catch (error) {
            parameterValue = false;
        }
        return parameterValue;
    };
    SPStarter._isConsoleLogEnabled = function () {
        return SPStarter._isQueryParameterTrue('enableConsoleLog');
    };
    SPStarter._isTelemetryDisabled = function () {
        return (SPStarter._isQueryParameterTrue('disableTelemetry') ||
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(ARIA_DISABLE_TELEMETRY_LOGGING_FLIGHT_ID));
    };
    SPStarter._useRequireJs = function (preloadedData) {
        var clientSideApplicationId = preloadedData.clientSideApplicationId;
        var isFlightEnabled = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(REQUIREJS_FLIGHT_ID);
        var isKillSwitchEnabled = _utilities_KillSwitches__WEBPACK_IMPORTED_MODULE_16__["KillSwitches"].isRequireJSKillSwitchActivated();
        var isListViewApplication = clientSideApplicationId === _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_15__["listViewHostComponentId"];
        var isClassicPageApplication = clientSideApplicationId === _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_15__["classicPageAppComponentId"];
        // ListView app has a dependency on using requirejs
        if (isListViewApplication) {
            return true;
        }
        // Do not use requirejs in the classic page app
        if (isClassicPageApplication) {
            return false;
        }
        return isFlightEnabled && !isKillSwitchEnabled;
    };
    SPStarter.handleError = function (error, userFriendlyMessage, operationName, correlationId, preloadedData) {
        var errorInformation = {
            message: userFriendlyMessage,
            correlationId: correlationId,
            error: error,
            operationName: operationName
        };
        if (this._isRedirectDisabled(preloadedData)) {
            this._consoleErrorHandleFailure(errorInformation);
        }
        else {
            this._errorAspxHandleFailure(errorInformation);
        }
        return Promise.reject(error);
    };
    SPStarter._isRedirectDisabled = function (preloadedData) {
        return SPStarter._isQueryParameterTrue('noredir') ||
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"].type === _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].ClassicSharePoint || // Classic pages
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Environment"].type === _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["EnvironmentType"].Local || // Local workbench
            preloadedData.clientSideApplicationId === _utilities_componentConstants__WEBPACK_IMPORTED_MODULE_15__["listViewHostComponentId"]; // ListView application
    };
    SPStarter._consoleErrorHandleFailure = function (errorInformation) {
        console.error(errorInformation.message);
        if (errorInformation.correlationId) {
            console.error("Correlation Id: " + errorInformation.correlationId);
        }
        if (errorInformation.operationName) {
            console.error("Operation name: " + errorInformation.operationName);
        }
        if (errorInformation.error) {
            console.error(errorInformation.error.message);
            console.error("CALL STACK: " + errorInformation.error.stack);
        }
    };
    SPStarter._errorAspxHandleFailure = function (errorInformation) {
        window.location.href =
            '_layouts/15/error.aspx' +
                '?ErrorCorrelationId=' + encodeURIComponent(errorInformation.correlationId || '') +
                '&ErrorText=' + encodeURIComponent(errorInformation.message) +
                '&ErrorDetails=' + encodeURIComponent(errorInformation.error ? errorInformation.error.toString() : '') +
                '&Name=' + encodeURIComponent(errorInformation.operationName || 'DefaultOperation') +
                '&ErrorCategory=spfx';
    };
    SPStarter._extractCompletenessCallbackEndpoint = function (completenessUrls) {
        if (completenessUrls && completenessUrls.length > 0) {
            return completenessUrls[0] + "/api/collection";
        }
        else {
            return undefined;
        }
    };
    SPStarter._bundledComponents = undefined;
    SPStarter._isTelemetryLoggingInRealTime = false;
    SPStarter._realTimeProcessingWaitTime = 1 * 1000; // 1 second
    return SPStarter;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPStarter);


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/load-themed-styles":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__;

/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-dynamic-data":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__;

/***/ }),

/***/ "@microsoft/sp-http":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__;

/***/ }),

/***/ "@microsoft/sp-lodash-subset":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__;

/***/ }),

/***/ "@microsoft/sp-page-context":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__;

/***/ }),

/***/ "@ms/sp-telemetry":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-loader_en-us.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("e40f8203-b39d-425a-a957-714852e33b79_1.10.0", ["@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-lodash-subset"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__) { return /******/ (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 = "./sp-dynamic-data.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_/GZrHjuQO4erDQbBRI2XSA": {
      "dynamicDataManagerSourceAlreadyExists": "***A source with id \"{0}\" already exists.",
      "dynamicDataManagerSourceDoesntExist": "***No source with id \"{0}\" found.",
      "pageContextDataSourceTitle": "Page environment",
      "pageContextDataSourceDescription": "***This includes some metadata about the page"
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-dynamic-data.js":
/*!****************************!*\
  !*** ./sp-dynamic-data.js ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @microsoft/sp-lodash-subset */ "@microsoft/sp-lodash-subset"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vpy3__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "+8N5":
/*!********************************************************!*\
  !*** ./lib/isolated/IsolatedProxyPageContextSource.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _IsolatedProxyDynamicDataSource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IsolatedProxyDynamicDataSource */ "e69M");


/**
 * Proxy for the page context source, as all the apis on the source are async in the isolated app.
 */
var IsolatedProxyPageContextSource = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IsolatedProxyPageContextSource, _super);
    function IsolatedProxyPageContextSource(source) {
        var _this = _super.call(this, source) || this;
        _this._source = source;
        return _this;
    }
    /**
     * {@inheritdoc IsolatedProxyDynamicDataSource.getPropertyDefinitions}
     */
    IsolatedProxyPageContextSource.prototype.getPropertyDefinitionsAsync = function () {
        return Promise.resolve(this._source.getPropertyDefinitions());
    };
    /**
     * {@inheritdoc IsolatedProxyDynamicDataSource.getPropertyValue}
     */
    IsolatedProxyPageContextSource.prototype.getPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this._source.getPropertyValue(propertyId));
    };
    /**
     * {@inheritdoc IsolatedProxyDynamicDataSource.getAnnotatedPropertyValue}
     */
    IsolatedProxyPageContextSource.prototype.getAnnotatedPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this._source.getAnnotatedPropertyValue(propertyId));
    };
    /**
     * {@inheritdoc IsolatedProxyDynamicDataSource.allowedEventsAsync}
     */
    IsolatedProxyPageContextSource.prototype.allowedEventsAsync = function () {
        return this._source.allowedEventsAsync();
    };
    return IsolatedProxyPageContextSource;
}(_IsolatedProxyDynamicDataSource__WEBPACK_IMPORTED_MODULE_1__["IsolatedProxyDynamicDataSource"]));
/* harmony default export */ __webpack_exports__["default"] = (IsolatedProxyPageContextSource);


/***/ }),

/***/ "7Mqo":
/*!****************************************************!*\
  !*** ./lib/isolated/IsolatedDynamicDataManager.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IsolatedDynamicDataMessageType */ "IkEF");
/* harmony import */ var _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./IsolatedDynamicDataTransceiver */ "jNSU");
/* harmony import */ var _IsolatedProxyDynamicDataSource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IsolatedProxyDynamicDataSource */ "e69M");
/* harmony import */ var _common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/DynamicDataEventConstants */ "8uTw");
/* harmony import */ var _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/DynamicDataEventNames */ "BDIN");
/* harmony import */ var _PageContextDataSource__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../PageContextDataSource */ "uyAI");
/* harmony import */ var _IsolatedProxyPageContextSource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./IsolatedProxyPageContextSource */ "+8N5");









/**
 * Manager for Dynamic Data in the Isolated scenario.
 * This holds a reference to the Dynamic Data Source and passes the data to the parent window's
 * DynamicDataManager through ParentIframeCommunicator.
 *
 * @remarks
 * Data sources can notify for changes within the data source or for a specific property.
 * Data consumers can register to both changes in a Dynamic Data source and a specific property within the source.
 * There are 3 events to handle this variety of situations:
 *
 * Notifying a change for a property triggers events for the specific propery and for "any" property
 * Notifying a change for the whole source triggers events for for "any" property and "all" properties.
 *
 * Registering for changes in a property register to events for the specific property and "all" properties.
 * Registering for changes in the whole source register to events for "any" properties.
 *
 * This ensures that regardless of how sources and consumers are configured, events will trigger once and only once for
 * each update within the data source.
 *
 * @internal
 */
var IsolatedDynamicDataManager = /** @class */ (function () {
    function IsolatedDynamicDataManager(serviceScope) {
        /**
         * Added the below 3 dummy public properties to make this class extend ISPEventObserver.
         */
        this.instanceId = 'IsolatedDynamicDataManager-instanceId';
        /**
         * Component id for the IsolatedDynamicDataManager.
         */
        this.componentId = 'IsolatedDynamicDataManager-componentId';
        /**
         * Indicates whether the component is disposed or not.
         */
        this.isDisposed = false;
        this._sourcesChangedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_4__["SOURCES_CHANGED_EVENT_NAME"]);
        this._existingSources = new Map();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_4__["SOURCES_RECEIVED"], this, this._onAllSourcesReceived.bind(this));
    }
    Object.defineProperty(IsolatedDynamicDataManager.prototype, "sourcesChangedEvent", {
        /**
         * Event that gets raised when the list of Dynamic Data Sources gets updated.
         * @eventproperty
         */
        get: function () {
            return this._sourcesChangedEvent;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Notifies the parent window that the Dynamic Data Source has been updated.
     * @param sourceId - Id of the Dynamic Data Source that is being updated.
     */
    IsolatedDynamicDataManager.prototype.notifySourceChanged = function (sourceId) {
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].NotifySourceChanged, {
            sourceId: sourceId
        });
    };
    /**
     * Notifies the parent window that the property in a Dynamic Data Source has been updated.
     * @param sourceId - Id of the Dynamic Data Source whose property is being updated.
     * @param propertyId - Id of the property that is being updated.
     */
    IsolatedDynamicDataManager.prototype.notifyPropertyChanged = function (sourceId, propertyId) {
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].NotifyPropertyChanged, {
            sourceId: sourceId,
            propertyId: propertyId
        });
    };
    /**
     * Registers a listener on the parent app's DynamicDataManager for updates
     * on a Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.registerSourceChanged = function (sourceId, observer, callback) {
        var eventNames = [
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId),
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId)
        ];
        var eventType = _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].RegisterSourceChanged;
        this._registerUnregisterEvents(true, { eventNames: eventNames, observer: observer, callback: callback }, { eventType: eventType, sourceId: sourceId });
    };
    /**
     * Unregisters a listener for updates on a Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.unregisterSourceChanged = function (sourceId, observer, callback) {
        var eventNames = [
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId),
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId)
        ];
        var eventType = _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].UnregisterSourceChanged;
        this._registerUnregisterEvents(false, { eventNames: eventNames, observer: observer, callback: callback }, { eventType: eventType, sourceId: sourceId });
    };
    /**
     * Registers a listener for updates on a Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.registerPropertyChanged = function (sourceId, propertyId, observer, callback) {
        var eventNames = [
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId),
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId)
        ];
        var eventType = _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].RegisterPropertyChanged;
        this._registerUnregisterEvents(true, { eventNames: eventNames, observer: observer, callback: callback }, { eventType: eventType, sourceId: sourceId, propertyId: propertyId });
    };
    /**
     * Registers a listener for updates on a Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.unregisterPropertyChanged = function (sourceId, propertyId, observer, callback) {
        var eventNames = [
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId),
            _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_5__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId)
        ];
        var eventType = _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].UnregisterPropertyChanged;
        this._registerUnregisterEvents(false, { eventNames: eventNames, observer: observer, callback: callback }, { eventType: eventType, sourceId: sourceId, propertyId: propertyId });
    };
    /**
     * Sends a message to the parent window, requesting for the current existing sources. When the
     * IsolatedDynamicDataManager receives the new list, it updates the existing list of sources and
     * notifies the listeners that the available sources have changed.
     *
     * @returns - A read-only array with all the existing Dynamic Data Sources.
     */
    IsolatedDynamicDataManager.prototype.getSources = function () {
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].AllSources);
        var sources = [];
        this._existingSources.forEach(function (source) { return sources.push(source); });
        return sources;
    };
    /**
     * Returns a Dynamic Data Source based on its id.
     * Returns undefined if the source doesn't exist.
     * @param sourceId - Id of the Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.tryGetSource = function (sourceId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(sourceId, 'sourceId');
        return this._existingSources.get(sourceId);
    };
    /**
     * Sends the new Isolated Dynamic Data Source to the main page, to be added into main page's
     * DynamicDataManager's list of sources.
     * Local PageContext data source is not sent to the main page, as it would be irrelevant,
     * and hence maintained locally. This is because, when asked for the pageContext source from
     * the isolated page, PageContext from isolated page is returned, NOT the main pages'.
     *
     * @remarks
     * Throws an error if the source can't be added.
     *
     * @param source - Dynamic Data Source to add.
     */
    IsolatedDynamicDataManager.prototype.addSource = function (source) {
        if (source.id === _PageContextDataSource__WEBPACK_IMPORTED_MODULE_6__["default"].pageContextDataSourceId) {
            this._existingSources.set(source.id, new _IsolatedProxyPageContextSource__WEBPACK_IMPORTED_MODULE_7__["default"](source));
            return;
        }
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].AddSource, { source: source });
    };
    /**
     * Removes an existing Dynamic Data Source from the manager.
     * @param id - Id of the Dynamic Data Source.
     */
    IsolatedDynamicDataManager.prototype.removeSource = function (sourceId) {
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].RemoveSource, { sourceId: sourceId });
    };
    /**
     * Added this api to make this class extend ISPEventObserver.
     * @internal
     */
    IsolatedDynamicDataManager.prototype.dispose = function () {
        this.isDisposed = true;
    };
    /**
     * Handler to store all the received sources from the parent window.
     * @param message - Incoming message from the parent window's PostMessage.
     */
    IsolatedDynamicDataManager.prototype._onAllSourcesReceived = function (data) {
        var _this = this;
        data.sources.forEach(function (source) {
            var id = source.id;
            if (!_this._existingSources.has(id)) {
                _this._existingSources.set(id, new _IsolatedProxyDynamicDataSource__WEBPACK_IMPORTED_MODULE_3__["IsolatedProxyDynamicDataSource"](source));
            }
        });
        this._raiseSourcesChangedEvent();
    };
    /**
     * Raises an event when the Dynamic Data Sources gets updated.
     * @remarks
     * The event is sticky because sources can be updated before there is anyone listening. This way all clients
     * will get notified that sources have been updated. Further updates are notified in real-time.
     */
    IsolatedDynamicDataManager.prototype._raiseSourcesChangedEvent = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseStickyEvent(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_4__["SOURCES_CHANGED_EVENT_NAME"], {});
    };
    IsolatedDynamicDataManager.prototype._registerUnregisterEvents = function (isRegister, eventData, sendMessageData) {
        var eventNames = eventData.eventNames, observer = eventData.observer, callback = eventData.callback;
        var eventType = sendMessageData.eventType, sourceId = sendMessageData.sourceId, propertyId = sendMessageData.propertyId;
        var methodName = isRegister ? 'registerEvent' : 'unregisterEvent';
        eventNames.forEach(function (eventName) { return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance[methodName](eventName, observer, callback); });
        _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_2__["IsolatedDynamicDataTransceiver"].sendMessage(eventType, { sourceId: sourceId, propertyId: propertyId, observer: observer });
    };
    return IsolatedDynamicDataManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (IsolatedDynamicDataManager);


/***/ }),

/***/ "8uTw":
/*!*************************************************!*\
  !*** ./lib/common/DynamicDataEventConstants.js ***!
  \*************************************************/
/*! exports provided: ANY_PROPERTY_EVENT_PREFIX, PROPERTY_EVENT_PREFIX, ALL_PROPERTIES_EVENT_PREFIX, SOURCES_CHANGED_EVENT_NAME, SOURCES_RECEIVED, EVENT_NAME_SEPARATOR, GET_PROPERTY_VALUE, GET_ANNOTATED_PROPERTY_VALUE, GET_PROPERTY_DEFINITIONS, GET_ALLOWED_EVENTS, DYNAMICDATAMANAGER_EXCEPTION */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ANY_PROPERTY_EVENT_PREFIX", function() { return ANY_PROPERTY_EVENT_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PROPERTY_EVENT_PREFIX", function() { return PROPERTY_EVENT_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ALL_PROPERTIES_EVENT_PREFIX", function() { return ALL_PROPERTIES_EVENT_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SOURCES_CHANGED_EVENT_NAME", function() { return SOURCES_CHANGED_EVENT_NAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SOURCES_RECEIVED", function() { return SOURCES_RECEIVED; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EVENT_NAME_SEPARATOR", function() { return EVENT_NAME_SEPARATOR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_PROPERTY_VALUE", function() { return GET_PROPERTY_VALUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_ANNOTATED_PROPERTY_VALUE", function() { return GET_ANNOTATED_PROPERTY_VALUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_PROPERTY_DEFINITIONS", function() { return GET_PROPERTY_DEFINITIONS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_ALLOWED_EVENTS", function() { return GET_ALLOWED_EVENTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DYNAMICDATAMANAGER_EXCEPTION", function() { return DYNAMICDATAMANAGER_EXCEPTION; });
var ANY_PROPERTY_EVENT_PREFIX = 'DynamicData_AnyPropertyChanged';
var PROPERTY_EVENT_PREFIX = 'DynamicData_PropertyChanged';
var ALL_PROPERTIES_EVENT_PREFIX = 'DynamicData_AllPropertiesChanged';
var SOURCES_CHANGED_EVENT_NAME = 'DynamicData_SourcesChanged';
var SOURCES_RECEIVED = 'DynamicData_All_Sources_Received';
var EVENT_NAME_SEPARATOR = '_';
var GET_PROPERTY_VALUE = 'DynamicData_PropertyValue';
var GET_ANNOTATED_PROPERTY_VALUE = 'DynamicData_Annotated_PropertyValue';
var GET_PROPERTY_DEFINITIONS = 'DynamicData_PropertyDefinitions';
var GET_ALLOWED_EVENTS = 'DynamicData_Allowed_Events';
var DYNAMICDATAMANAGER_EXCEPTION = 'DynamicDataManager_Exception';


/***/ }),

/***/ "BDIN":
/*!*********************************************!*\
  !*** ./lib/common/DynamicDataEventNames.js ***!
  \*********************************************/
/*! exports provided: DynamicDataEventNames */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DynamicDataEventNames", function() { return DynamicDataEventNames; });
/* harmony import */ var _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DynamicDataEventConstants */ "8uTw");

/**
 * Event names for DynamicData related events.
 *
 * @internal
 */
var DynamicDataEventNames = /** @class */ (function () {
    function DynamicDataEventNames() {
    }
    /**
     * Returns the event name used when all properties in a Dynamic Data source have changed.
     * Example: DynamicData_AllPropertiesChanged_WebPart.<componentId>.<instanceId>
     *
     * @param sourceId - Id of the Dynamic Data source.
     */
    DynamicDataEventNames.getAllPropertiesChangedEventName = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["ALL_PROPERTIES_EVENT_PREFIX"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    /**
     * Returns the event name used when any property in a Dynamic Data source has changed.
     * Example: DynamicData_AnyPropertyChanged_WebPart.<componentId>.<instanceId>
     *
     * @param sourceId - Id of the Dynamic Data source.
     */
    DynamicDataEventNames.getAnyPropertyChangedEventName = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["ANY_PROPERTY_EVENT_PREFIX"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    /**
     * Returns the event name used when a properties in a Dynamic Data source has changed.
     * Example: DynamicData_PropertyChanged_WebPart.<componentId>.<instanceId>_myProperty
     *
     * @param sourceId - Id of the Dynamic Data source.
     * @param propertyId - Id of the property that has changed.
     */
    DynamicDataEventNames.getPropertyChangedEventName = function (sourceId, propertyId) {
        return "" + this.getPropertyChangedEventPrefix(sourceId) + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + propertyId;
    };
    /**
     * Returns the event name prefix used when a property in a Dynamic Data source has changed.
     * This should not be used as a final name for an event, but to be used inside _getPropertyChangedEventName.
     * Example: DynamicData_PropertyChanged_WebPart.<componentId>.<instanceId>
     *
     * @param sourceId - Id of the Dynamic Data source.
     */
    DynamicDataEventNames.getPropertyChangedEventPrefix = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["PROPERTY_EVENT_PREFIX"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    /**
     * Returns the event name used to publish and consume the event for when a specific property
     * has changed its value on a source.
     *
     * @param sourceId - Id of the Dynamic Data source.
     * @param propertyId - Property Id on the source.
     * @param isAnnotated - Indicates whether the event name is for the annotated value.
     */
    DynamicDataEventNames.getPropertyValueEventName = function (sourceId, propertyId, isAnnotated) {
        var scenario = isAnnotated ? _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["GET_ANNOTATED_PROPERTY_VALUE"] : _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["GET_PROPERTY_VALUE"];
        return "" + scenario + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + propertyId;
    };
    /**
     * Returns the event name used to publish and consume the event to request and receive the
     * property definitions from a specific Dynamic Data soource, from the parent window.
     *
     * @param sourceId - Id of the Dynamic Data source.
     */
    DynamicDataEventNames.getPropertyDefintionsEventName = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["GET_PROPERTY_DEFINITIONS"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    /**
     * Returns the event name used to publish and consume the event to request and receive the
     * allowed events on a specific Dynamic Data soource, from the parent window.
     *
     * @param sourceId - Id of the Dynamic Data source.
     */
    DynamicDataEventNames.getAllowedEventsEventName = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["GET_ALLOWED_EVENTS"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    DynamicDataEventNames.getDynamicDataManagerExceptionEventName = function (sourceId) {
        return "" + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["DYNAMICDATAMANAGER_EXCEPTION"] + _DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_0__["EVENT_NAME_SEPARATOR"] + sourceId;
    };
    return DynamicDataEventNames;
}());



/***/ }),

/***/ "FpZ8":
/*!********************************************!*\
  !*** ./lib/common/DynamicDataUtilities.js ***!
  \********************************************/
/*! exports provided: DynamicDataUtilities */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DynamicDataUtilities", function() { return DynamicDataUtilities; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _DynamicDataManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../DynamicDataManager */ "Ro9o");


/**
  * Utilities for the Dynamic Data feature.
  * @internal
  */
var DynamicDataUtilities = /** @class */ (function () {
    function DynamicDataUtilities() {
    }
    /**
     * A unique ServiceKey to identify the IDynamicDataManager as a service in the ServiceScope.
    *
    * @remarks Same ServiceKey is used to provide both DynamicDataManager and IsolatedDynamicDataManager.
    * This is to ensure that the consumers, will not have to selectively consume IDDM type based on the app they're in.
    * Also note that, in the isolated scenario, though we use the same servicekey, where the default instance
    * is DynamicDataManager, we will provide the IsolatedDynamicDataManager instance to the service scope
    * in the isolated app.
     */
    // tslint:disable-next-line: variable-name
    DynamicDataUtilities.IDynamicDataManagerServiceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-dynamic-data:IDynamicDataManager', _DynamicDataManager__WEBPACK_IMPORTED_MODULE_1__["default"]);
    return DynamicDataUtilities;
}());



/***/ }),

/***/ "IkEF":
/*!********************************************************!*\
  !*** ./lib/isolated/IsolatedDynamicDataMessageType.js ***!
  \********************************************************/
/*! exports provided: IsolatedDynamicDataMessageType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsolatedDynamicDataMessageType", function() { return IsolatedDynamicDataMessageType; });
/**
 * Enum defining the possible event types related to Dynamic Data when
 * the component is hosted in an isolated environment.
 *
 * @internal
 */
var IsolatedDynamicDataMessageType;
(function (IsolatedDynamicDataMessageType) {
    /**
     * Notify that the list of sources changed in the parent page.
     */
    IsolatedDynamicDataMessageType["SourcesChangedEvent"] = "sourcesChangedEvent";
    /**
     * Notify that the source is changed.
     */
    IsolatedDynamicDataMessageType["NotifySourceChanged"] = "notifySourceChanged";
    /**
     * Notify that the property is changed.
     */
    IsolatedDynamicDataMessageType["NotifyPropertyChanged"] = "notifyPropertyChanged";
    /**
     * Register to the source changed event.
     */
    IsolatedDynamicDataMessageType["RegisterSourceChanged"] = "registerSourceChanged";
    /**
     * Unregister to the source changed event.
     */
    IsolatedDynamicDataMessageType["UnregisterSourceChanged"] = "unregisterSourceChanged";
    /**
     * Register to the property changed event.
     */
    IsolatedDynamicDataMessageType["RegisterPropertyChanged"] = "registerPropertyChanged";
    /**
     * Unregister the requested property changed event.
     */
    IsolatedDynamicDataMessageType["UnregisterPropertyChanged"] = "unregisterPropertyChanged";
    /**
     * Get all the available sources.
     */
    IsolatedDynamicDataMessageType["AllSources"] = "getSources";
    /**
     * Try get the requested source.
     */
    IsolatedDynamicDataMessageType["TryGetSource"] = "tryGetSource";
    /**
     * Add the source.
     */
    IsolatedDynamicDataMessageType["AddSource"] = "addSource";
    /**
     * Remove the source.
     */
    IsolatedDynamicDataMessageType["RemoveSource"] = "removeSource";
    /**
     * Return all the property definitions.
     */
    IsolatedDynamicDataMessageType["GetPropertyDefinitions"] = "getPropertyDefinitions";
    /**
     * Return the value of the specified property.
     */
    IsolatedDynamicDataMessageType["GetPropertyValue"] = "getPropertyValue";
    /**
     * Return the annotated value of the specified property.
     */
    IsolatedDynamicDataMessageType["GetAnnotatedPropertyValue"] = "getAnnotatedPropertyValue";
    /**
     * Return the list of allowed events on the source.
     */
    IsolatedDynamicDataMessageType["AllowedEvents"] = "allowedEvents";
    /**
     * Allows to send an event with data to the source, from the consumer.
     */
    IsolatedDynamicDataMessageType["SendEvent"] = "sendEvent";
    /**
     * When DynamicDataManager in the parent window throws an exception on invoking apis
     * then this event type is used to send that error details to the isolated window.
     */
    IsolatedDynamicDataMessageType["DynamicDataManagerException"] = "dynamicDataManagerException";
})(IsolatedDynamicDataMessageType || (IsolatedDynamicDataMessageType = {}));


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "Ro9o":
/*!***********************************!*\
  !*** ./lib/DynamicDataManager.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loc/Strings.resx */ "qITA");
/* harmony import */ var _common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common/DynamicDataEventConstants */ "8uTw");
/* harmony import */ var _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/DynamicDataEventNames */ "BDIN");





var QOS_MONITOR_PREFIX = 'DynamicData.DynamicDataManager';
var LOG_SOURCE = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('DynamicDataManager');
/**
 * Manager for Dynamic Data.
 * This holds a reference to all Dynamic Data Sources and uses the SPEventManager internally to handle
 * notifications for source updates.
 *
 * @remarks
 * Data sources can notify for changes within the data source or for a specific property.
 * Data consumers can register to both changes in a Dynamic Data source and a specific property within the source.
 * There are 3 events to handle this variety of situations:
 *
 * Notifying a change for a property triggers events for the specific propery and for "any" property
 * Notifying a change for the whole source triggers events for "any" property and "all" properties.
 *
 * Registering for changes in a property register to events for the specific property and "all" properties.
 * Registering for changes in the whole source register to events for "any" properties.
 *
 * This ensures that regardless of how sources and consumers are configured, events will trigger once and only once for
 * each update within the data source.
 *
 * @internal
 */
var DynamicDataManager = /** @class */ (function () {
    function DynamicDataManager(serviceScope) {
        this._sources = new Map();
        this._sourcesChangedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_3__["SOURCES_CHANGED_EVENT_NAME"]);
    }
    Object.defineProperty(DynamicDataManager.prototype, "sourcesChangedEvent", {
        /**
         * Event that gets raised when the list of Dynamic Data Sources gets updated.
         * @eventproperty
         */
        get: function () {
            return this._sourcesChangedEvent;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Raises an event to all listeners when a Dynamic Data Source has been updated.
     * @param sourceId - Id of the Dynamic Data Source that is being updated.
     */
    DynamicDataManager.prototype.notifySourceChanged = function (sourceId) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.notifySourceChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), {});
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), {});
            qosMonitor.writeSuccess();
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure(e);
            throw e;
        }
    };
    /**
     * Raises an event to all listeners when a property in a Dynamic Data Source has been updated.
     * @param sourceId - Id of the Dynamic Data Source whose property is being updated.
     * @param propertyId - Id of the property that is being updated.
     */
    DynamicDataManager.prototype.notifyPropertyChanged = function (sourceId, propertyId) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.notifyPropertyChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(propertyId, 'propertyId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId), {});
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), {});
            qosMonitor.writeSuccess();
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure(e);
            throw e;
        }
    };
    /**
     * Registers a listener for updates on a Dynamic Data Source.
     */
    DynamicDataManager.prototype.registerSourceChanged = function (sourceId, observer, callback) {
        var extraData = this._createQosExtraData(observer.manifest);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.registerSourceChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(observer, 'observer');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
            if (!this._sources.has(sourceId)) {
                throw new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].dynamicDataManagerSourceDoesntExist, sourceId));
            }
            // Registering to all properties changed event.
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), observer, callback);
            // Registering to any property changed event, as it means that the source is changed.
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), observer, callback);
            qosMonitor.writeSuccess(extraData);
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('UnhandledRegisterSourceChange', e, extraData);
            throw e;
        }
    };
    /**
     * Unregisters a listener for updates on a Dynamic Data Source.
     */
    DynamicDataManager.prototype.unregisterSourceChanged = function (sourceId, observer, callback) {
        var extraData = this._createQosExtraData(observer.manifest);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.unregisterSourceChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(observer, 'observer');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
            if (!this._sources.has(sourceId)) {
                throw new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].dynamicDataManagerSourceDoesntExist, sourceId));
            }
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), observer, callback);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), observer, callback);
            qosMonitor.writeSuccess(extraData);
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('UnhandledUnregisterSourceChange', e, extraData);
            throw e;
        }
    };
    /**
     * Registers a listener for updates on a Dynamic Data Source.
     */
    DynamicDataManager.prototype.registerPropertyChanged = function (sourceId, propertyId, observer, callback) {
        var extraData = this._createQosExtraData(observer.manifest);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.registerPropertyChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(propertyId, 'propertyId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(observer, 'observer');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
            if (!this._sources.has(sourceId)) {
                throw new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].dynamicDataManagerSourceDoesntExist, sourceId));
            }
            // Registering to the specific property
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId), observer, callback);
            // Registering to all properties changed event, as the specific property will also be changed.
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), observer, callback);
            qosMonitor.writeSuccess(extraData);
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('UnhandledRegisterPropertyChange', e, extraData);
            throw e;
        }
    };
    /**
     * Unregisters a listener for updates on a Dynamic Data Source.
     */
    DynamicDataManager.prototype.unregisterPropertyChanged = function (sourceId, propertyId, observer, callback) {
        var extraData = this._createQosExtraData(observer.manifest);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.unregisterPropertyChanged');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(propertyId, 'propertyId');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(observer, 'observer');
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
            if (!this._sources.has(sourceId)) {
                throw new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].dynamicDataManagerSourceDoesntExist, sourceId));
            }
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId), observer, callback);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), observer, callback);
            qosMonitor.writeSuccess(extraData);
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('UnhandledUnregisterPropertyChange', e, extraData);
            throw e;
        }
    };
    /**
     * Returns a read-only array with all the existing Dynamic Data Sources.
     */
    DynamicDataManager.prototype.getSources = function () {
        var sources = [];
        this._sources.forEach(function (source) { return sources.push(source); });
        return sources;
    };
    /**
     * Returns a Dynamic Data Source based on its id.
     * Returns undefined if the source doesn't exist.
     * @param sourceId - Id of the Dynamic Data Source.
     */
    DynamicDataManager.prototype.tryGetSource = function (sourceId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(sourceId, 'sourceId');
        return this._sources.get(sourceId);
    };
    /**
     * Adds a new Dynamic Data Source to be managed.
     * Throws an error if the source can't be added.
     *
     * @param source - Dynamic Data Source to add.
     */
    DynamicDataManager.prototype.addSource = function (source) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.addSource');
        try {
            this._validateSource(source);
            if (this._sources.has(source.id)) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(LOG_SOURCE, _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_2__["default"].dynamicDataManagerSourceAlreadyExists, source.id));
            }
            this._sources.set(source.id, source);
            this._raiseSourcesChangedEvent();
            qosMonitor.writeSuccess();
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure(e);
            throw e;
        }
    };
    /**
     * Removes an existing Dynamic Data Source from the manager.
     * @param id - Id of the Dynamic Data Source.
     */
    DynamicDataManager.prototype.removeSource = function (sourceId) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](QOS_MONITOR_PREFIX + '.removeSource');
        try {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
            if (this._sources.has(sourceId)) {
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.removeEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId));
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.removeEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId));
                _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.removeEventsByPrefix(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_4__["DynamicDataEventNames"].getPropertyChangedEventPrefix(sourceId));
                this._sources.delete(sourceId);
                this._raiseSourcesChangedEvent();
            }
            qosMonitor.writeSuccess();
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure(e);
            throw e;
        }
    };
    /**
     * Creates a new extra data object _IQosExtraData.
    */
    DynamicDataManager.prototype._createQosExtraData = function (manifest) {
        if (!manifest) {
            return undefined;
        }
        var qosExtraData = {
            alias: manifest.alias,
            isInternal: manifest.isInternal,
            manifestId: manifest.id
        };
        return qosExtraData;
    };
    DynamicDataManager.prototype._validateSource = function (source) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(source, 'source');
        if (source.id.indexOf(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_3__["EVENT_NAME_SEPARATOR"]) > -1) {
            throw new Error("Source id contains invalid characters, like \"" + _common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_3__["EVENT_NAME_SEPARATOR"] + "\". Id: \"" + source.id + "\".");
        }
        var regex = /^[a-zA-Z0-9\-_]+$/;
        source.getPropertyDefinitions().forEach(function (def) {
            if (!regex.test(def.id)) {
                throw new Error("Source contains invalid property \"" + def.id + "\".");
            }
        });
    };
    /**
     * Raises an event when the Dynamic Data Sources gets updated.
     * @remarks
     * The event is sticky because sources can be updated before there is anyone listening. This way all clients
     * will get notified that sources have been updated. Further updates are notified in real-time.
     */
    DynamicDataManager.prototype._raiseSourcesChangedEvent = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseStickyEvent(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_3__["SOURCES_CHANGED_EVENT_NAME"], {});
    };
    return DynamicDataManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (DynamicDataManager);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "e69M":
/*!********************************************************!*\
  !*** ./lib/isolated/IsolatedProxyDynamicDataSource.js ***!
  \********************************************************/
/*! exports provided: IsolatedProxyDynamicDataSource */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsolatedProxyDynamicDataSource", function() { return IsolatedProxyDynamicDataSource; });
/* harmony import */ var _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IsolatedDynamicDataTransceiver */ "jNSU");
/* harmony import */ var _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IsolatedDynamicDataMessageType */ "IkEF");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/DynamicDataEventNames */ "BDIN");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__);





var QOS_MONITOR_PREFIX = 'DynamicData.IsolatedProxyDynamicDataSource';
/**
 * A proxy dyanmic data source created in the isolated environment. This class is responsible
 * for adding proxy async apis on the source, which are responsible for making sending PostMessages
 * to the parent window and get the information back.
 *
 * @internal
 */
var IsolatedProxyDynamicDataSource = /** @class */ (function () {
    function IsolatedProxyDynamicDataSource(source) {
        /**
         * Added the below 3 dummy public properties to make this class extend ISPEventObserver.
         * @internal
         */
        this.instanceId = this.id + "-instanceId";
        this.componentId = this.id;
        this.isDisposed = false;
        // Property value variables
        this._propertyValueMap = new Map(); // tslint:disable-line:no-any
        // Annotated property value variables
        // tslint:disable-next-line:no-any
        this._annotatedPropertyValueMap = new Map();
        this._id = source.id;
        this._metadata = source.metadata;
        this._propertyDefinitions = new Array();
    }
    Object.defineProperty(IsolatedProxyDynamicDataSource.prototype, "id", {
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IsolatedProxyDynamicDataSource.prototype, "metadata", {
        get: function () {
            return this._metadata;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns all the property definitions for dynamic data asynchronously.
     * This needs to be overriden by the implementation of the component.
     *
     * Note: Currently we throw when someone tries to call the api, while there's an outstanding
     * promise on the api. This shouldn't happen in a regular case. However, if we see this happening
     * regularly, then we should handle these scenarios properly, instead of just throwing.
     *
     * @virtual
     */
    IsolatedProxyDynamicDataSource.prototype.getPropertyDefinitionsAsync = function () {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](QOS_MONITOR_PREFIX + '.getPropertyDefinitions');
        if (this._propertyDefinitions) {
            qosMonitor.writeSuccess();
            return Promise.resolve(this._propertyDefinitions);
        }
        if (this._propertyDefinitionsPromiseResolve) {
            var failureTag = "Calling 'getPropertyDefintions' is not allowed\n      while there's an outstanding promise on the api.";
            qosMonitor.writeUnexpectedFailure(failureTag);
            throw new Error(failureTag);
        }
        return new Promise(function (resolve, reject) {
            _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].GetPropertyDefinitions);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyDefintionsEventName(_this.id), _this, function (data) { return _this.receivePropertyDefinitions(qosMonitor, data); });
            _this._propertyDefinitionsPromiseResolve = resolve;
            _this._propertyDefinitionsPromiseReject = reject;
        });
    };
    /**
     * Api to receive the requested property definitions from the parent window.
     *
     * @param qosMonitor - Qos monitor
     * @param propertyDefintions - List of property definitions.
     */
    IsolatedProxyDynamicDataSource.prototype.receivePropertyDefinitions = function (qosMonitor, data) {
        var _this = this;
        if (!data.errorMessage) {
            this._propertyDefinitions = data.propertyDefintions;
            if (this._propertyDefinitionsPromiseResolve) {
                qosMonitor.writeSuccess();
                this._propertyDefinitionsPromiseResolve(data.propertyDefintions);
            }
        }
        else {
            if (this._propertyDefinitionsPromiseReject) {
                var failureTag = 'Unable to retreive property definitions from the source id:' + this.id;
                qosMonitor.writeUnexpectedFailure(failureTag);
                this._propertyDefinitionsPromiseReject(new Error(failureTag));
            }
        }
        this._propertyDefinitionsPromiseResolve = undefined;
        this._propertyDefinitionsPromiseReject = undefined;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyDefintionsEventName(this.id), this, function (pd) { return _this.receivePropertyDefinitions(qosMonitor, pd); });
    };
    /**
     * Given a property id, returns the value of the property asynchronously.
     * This needs to be overriden by the implementation of the component.
     *
     * Note: Currently we throw when someone tries to call the api, while there's an outstanding
     * promise on the api. This shouldn't happen in a regular case. However, if we see this happening
     * regularly, then we should handle these scenarios properly, instead of just throwing.
     *
     * @virtual
     */
    IsolatedProxyDynamicDataSource.prototype.getPropertyValueAsync = function (propertyId) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](QOS_MONITOR_PREFIX + '.getAllowedEvents');
        if (this._propertyValueMap.has(propertyId)) {
            qosMonitor.writeSuccess();
            return Promise.resolve(this._propertyValueMap.get(propertyId));
        }
        if (this._propertyValuePromiseResolve) {
            var failureTag = "Calling 'getPropertyValue' is not allowed\n      while there's an outstanding promise on the api.";
            qosMonitor.writeUnexpectedFailure(failureTag);
            throw new Error(failureTag);
        }
        return new Promise(function (// tslint:disable-line:no-any
        resolve, // tslint:disable-line:no-any
        reject) {
            _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].GetPropertyValue);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(_this.id, propertyId), _this, function (message) { return _this.receivePropertyValue(qosMonitor, message); });
            _this._propertyValuePromiseResolve = resolve;
            _this._propertyValuePromiseReject = reject;
        });
    };
    /**
     * Api to receive the requested value for the property id from the source in the parent window.
     *
     * @param qosMonitor - Qos monitor.
     * @param propertyValue - Property value.
     */
    IsolatedProxyDynamicDataSource.prototype.receivePropertyValue = function (qosMonitor, message) {
        var _this = this;
        var data = message.data;
        if (!data.errorMessage) {
            this._propertyValueMap.set(data.propertyId, data.propertyValue);
            if (this._propertyValuePromiseResolve) {
                qosMonitor.writeSuccess();
                this._propertyValuePromiseResolve(data.propertyValue);
            }
        }
        else {
            if (this._propertyValuePromiseReject) {
                var failureTag = 'Unable to get the property value for the property id: ' + data.propertyId;
                qosMonitor.writeUnexpectedFailure(failureTag);
                this._propertyValuePromiseReject(new Error(failureTag));
            }
        }
        this._propertyValuePromiseResolve = undefined;
        this._propertyValuePromiseReject = undefined;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(this.id, data.propertyId), this, function (msg) { return _this.receivePropertyValue(qosMonitor, msg); });
    };
    /**
     * Given a property id, returns its annotated value asynchronously.
     * If the source doesn't supply the annotated value, then it falls back to whatever
     * 'getPropertyValue' as the sample value and metadata would be undefined.
     *
     * @param propertyId - One of the property ids exposed from the dynamic data source.
     *
     * Note: Currently we throw when someone tries to call the api, while there's an outstanding
     * promise on the api. This shouldn't happen in a regular case. However, if we see this happening
     * regularly, then we should handle these scenarios properly, instead of just throwing.
     *
     * @virtual
     */
    IsolatedProxyDynamicDataSource.prototype.getAnnotatedPropertyValueAsync = function (propertyId) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](QOS_MONITOR_PREFIX + '.getAnnotatedPropertyValue');
        if (this._annotatedPropertyValueMap.has(propertyId)) {
            qosMonitor.writeSuccess();
            return Promise.resolve(this._annotatedPropertyValueMap.get(propertyId));
        }
        if (this._annotatedPropertyValuePromiseResolve) {
            var failureTag = "Calling 'getAnnotatedPropertyValue' is not allowed\n      while there's an outstanding promise on the api.";
            qosMonitor.writeUnexpectedFailure(failureTag);
            throw new Error(failureTag);
        }
        return new Promise(function (resolve, reject) {
            _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].GetAnnotatedPropertyValue);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(_this.id, propertyId, true), _this, function (message) { return _this.receiveAnnoatedPropertyValue(qosMonitor, message); });
            _this._annotatedPropertyValuePromiseResolve = resolve;
            _this._annotatedPropertyValuePromiseReject = reject;
        });
    };
    /**
     * Api to receive the requested annotated value for the property id from the source in the parent window.
     *
     * @param qosMonitor - Qos monitor.
     * @param propertyValue - Property value.
     */
    IsolatedProxyDynamicDataSource.prototype.receiveAnnoatedPropertyValue = function (qosMonitor, message) {
        var _this = this;
        var data = message.data;
        if (!data.errorMessage) {
            this._annotatedPropertyValueMap.set(data.propertyId, data.propertyValue);
            if (this._annotatedPropertyValuePromiseResolve) {
                qosMonitor.writeSuccess();
                this._annotatedPropertyValuePromiseResolve(data.propertyValue);
            }
        }
        else {
            if (this._annotatedPropertyValuePromiseReject) {
                var failureTag = 'Unable to get the annotated property value for the proeprty id: ' + data.propertyId;
                qosMonitor.writeUnexpectedFailure(failureTag);
                this._annotatedPropertyValuePromiseReject(new Error(failureTag));
            }
        }
        this._annotatedPropertyValuePromiseResolve = undefined;
        this._annotatedPropertyValuePromiseReject = undefined;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(this.id, data.propertyId, true), this, function (msg) { return _this.receiveAnnoatedPropertyValue(qosMonitor, msg); });
    };
    /**
     * Returns list of allowed events on the dynamic data source asynchronously.
     * When this api returns a non-empty result, then source must define 'sendData' api.
     *
     * If this api is not defined or returns an empty map, then no consumer will be able
     * to talk to this source.
     *
     * Note: Currently we throw when someone tries to call the api, while there's an outstanding
     * promise on the api. This shouldn't happen in a regular case. However, if we see this happening
     * regularly, then we should handle these scenarios properly, instead of just throwing.
     *
     * @virtual
     */
    IsolatedProxyDynamicDataSource.prototype.allowedEventsAsync = function () {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_4__["_QosMonitor"](QOS_MONITOR_PREFIX + '.getAllowedEvents');
        if (this._allowedEvents) {
            qosMonitor.writeSuccess();
            return Promise.resolve(this._allowedEvents);
        }
        if (this._allowedEventsResolve) {
            var failureTag = "Calling 'getAllowedEvents' is not allowed\n      while there's an outstanding promise on the api.";
            qosMonitor.writeUnexpectedFailure(failureTag);
            throw new Error(failureTag);
        }
        return new Promise(function (resolve, reject) {
            _IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataTransceiver"].sendMessage(_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_1__["IsolatedDynamicDataMessageType"].AllowedEvents);
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.registerEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getAllowedEventsEventName(_this.id), _this, function (message) { return _this.receiveAllowedEvents(qosMonitor, message); });
            _this._allowedEventsResolve = resolve;
            _this._allowedEventsPromiseReject = reject;
        });
    };
    /**
     * Api to receive the requested allowed events from the source in the parent window.
     *
     * @param qosMonitor - Qos monitor.
     * @param allowedEvents - List of allowed events on the source.
     */
    IsolatedProxyDynamicDataSource.prototype.receiveAllowedEvents = function (qosMonitor, message) {
        var _this = this;
        var data = message.data;
        if (!data.errorMessage) {
            this._allowedEvents = data.allowedEvents;
            if (this._allowedEventsResolve) {
                qosMonitor.writeSuccess();
                this._allowedEventsResolve(data.allowedEvents);
            }
        }
        else {
            if (this._allowedEventsPromiseReject) {
                var failureTag = 'Unable to get the allowed events on the source id:' + this.id;
                qosMonitor.writeUnexpectedFailure(failureTag);
                this._allowedEventsPromiseReject(new Error(failureTag));
            }
        }
        this._allowedEventsResolve = undefined;
        this._allowedEventsPromiseReject = undefined;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.unregisterEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getAllowedEventsEventName(this.id), this, function (msg) { return _this.receiveAllowedEvents(qosMonitor, msg); });
    };
    /**
     * {@inheritdoc IDynamicDataSource.getPropertyDefinitions}
     */
    IsolatedProxyDynamicDataSource.prototype.getPropertyDefinitions = function () {
        return [];
    };
    /**
     * {@inheritdoc IDynamicDataSource.getPropertyValue}
     */
    IsolatedProxyDynamicDataSource.prototype.getPropertyValue = function (propertyId) {
        return undefined;
    };
    /**
     * {@inheritdoc IDynamicDataSource.getAnnotatedPropertyValue}
     */
    IsolatedProxyDynamicDataSource.prototype.getAnnotatedPropertyValue = function (propertyId) {
        return undefined;
    };
    IsolatedProxyDynamicDataSource.prototype.dispose = function () {
        this.isDisposed = true;
    };
    return IsolatedProxyDynamicDataSource;
}());



/***/ }),

/***/ "ilZV":
/*!*************************************!*\
  !*** ./lib/DynamicDataReference.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Class that contains the Dynamic Data reference.
 * This includes the source, property, and property path (if applicable) of Dynamic Data
 *
 * @remarks
 * The reference string is of the form `<sourceId>:<property>` or `<sourceId>:<property>:<propertyPath>`
 *
 * Examples of references are:
 * `WebPart.<componentId>.<instanceId>:myComplexProperty:myArray[0].lastName`
 *
 * @public
 */
var DynamicDataReference = /** @class */ (function () {
    function DynamicDataReference(reference) {
        var split = reference.split(':');
        if (split.length < 2) {
            throw new Error("Data id is malformed. Data id: \"" + reference + "\"");
        }
        this._reference = reference;
        this._sourceId = split[0];
        this._property = split[1];
        this._propertyPath = split[2];
    }
    Object.defineProperty(DynamicDataReference.prototype, "reference", {
        /**
         * Returns the full reference of the Dynamic Data object as a string.
         */
        get: function () {
            return this._reference;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicDataReference.prototype, "sourceId", {
        /**
         * Returns the referred id of the Dynamic Data Source.
         */
        get: function () {
            return this._sourceId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicDataReference.prototype, "property", {
        /**
         * Returns the referred property of the Dynamic Data.
         */
        get: function () {
            return this._property;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicDataReference.prototype, "propertyPath", {
        /**
         * Returns the referred property path of the Dynamic Data.
         * Returns undefined if there is no property path.
         */
        get: function () {
            return this._propertyPath;
        },
        enumerable: true,
        configurable: true
    });
    return DynamicDataReference;
}());
/* harmony default export */ __webpack_exports__["default"] = (DynamicDataReference);


/***/ }),

/***/ "jNSU":
/*!********************************************************!*\
  !*** ./lib/isolated/IsolatedDynamicDataTransceiver.js ***!
  \********************************************************/
/*! exports provided: IsolatedDynamicDataTransceiver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsolatedDynamicDataTransceiver", function() { return IsolatedDynamicDataTransceiver; });
/* harmony import */ var _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IsolatedDynamicDataMessageType */ "IkEF");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/DynamicDataEventConstants */ "8uTw");
/* harmony import */ var _common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/DynamicDataEventNames */ "BDIN");




/**
 * Class which handles both transmitting and receiving messages to and from the parent window
 * via PostMessage, when the component is loaded in an isolated environment.
 *
 * @internal
 */
var IsolatedDynamicDataTransceiver = /** @class */ (function () {
    function IsolatedDynamicDataTransceiver(serviceScope) {
        this._onMessageReceivedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["SPEvent"](_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_2__["SOURCES_RECEIVED"]);
        window.addEventListener('message', this._onMessageReceived);
    }
    /**
     * Sends a PostMessage to the parent window.
     *
     * @param eventType - Type of event to send.
     * @param data - Associated data with the event.
     */
    IsolatedDynamicDataTransceiver.sendMessage = function (eventType, data) {
        if (data === void 0) { data = {}; }
        window.parent.postMessage({
            type: eventType,
            data: data
        }, window.parent.origin);
    };
    Object.defineProperty(IsolatedDynamicDataTransceiver.prototype, "messageReceivedEvent", {
        /**
         * Event that gets raised when the list of Dynamic Data Sources gets updated.
         * @eventproperty
         */
        get: function () {
            return this._onMessageReceivedEvent;
        },
        enumerable: true,
        configurable: true
    });
    IsolatedDynamicDataTransceiver.prototype._onMessageReceived = function (event) {
        var currentOrigin = new URL(event.origin).origin;
        var message = event.data;
        /*
         * Handle the received event only if it is targeted to the current window and
         * the message is for the Isolated DynamicData scenario.
         */
        if (currentOrigin.toLowerCase() === event.origin.toLowerCase() && message) {
            var data = message.data;
            switch (message.type) {
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].SourcesChangedEvent:
                    this._raiseSourcesChangedEvent(data);
                    break;
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].NotifySourceChanged:
                    this._notifySourceChanged(data);
                    break;
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].NotifyPropertyChanged:
                    this._notifyPropertyChanged(data);
                    break;
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].GetPropertyDefinitions:
                    this._notifyPropertyDefinitionsReceived(data);
                    break;
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].GetPropertyValue:
                    this._notifyPropertyValueReceived(data);
                    break;
                case _IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_0__["IsolatedDynamicDataMessageType"].GetAnnotatedPropertyValue:
                    this._notifyAnnotatedPropertyValueReceived(data);
            }
        }
    };
    /**
     * Raises an event when the Dynamic Data Sources gets updated.
     * @remarks
     * The event is sticky because sources can be updated before there is anyone listening. This way all clients
     * will get notified that sources have been updated. Further updates are notified in real-time.
     */
    IsolatedDynamicDataTransceiver.prototype._raiseSourcesChangedEvent = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseStickyEvent(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_2__["SOURCES_CHANGED_EVENT_NAME"], {});
        // Isolated DDM listens to this event to read all the passed in sources
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseStickyEvent(_common_DynamicDataEventConstants__WEBPACK_IMPORTED_MODULE_2__["SOURCES_RECEIVED"], data);
    };
    /**
     * Raises an event to all listeners when a Dynamic Data Source has been updated.
     * @param data - Data associated with the message.
     */
    IsolatedDynamicDataTransceiver.prototype._notifySourceChanged = function (data) {
        var sourceId = data.sourceId;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getAllPropertiesChangedEventName(sourceId), {});
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), {});
    };
    /**
     * Raises an event to all listeners when a property in a Dynamic Data Source has been updated.
     * @param data - Data associated with the event.
     */
    IsolatedDynamicDataTransceiver.prototype._notifyPropertyChanged = function (data) {
        var sourceId = data.sourceId, propertyId = data.propertyId;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyChangedEventName(sourceId, propertyId), {});
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getAnyPropertyChangedEventName(sourceId), {});
    };
    IsolatedDynamicDataTransceiver.prototype._notifyPropertyDefinitionsReceived = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyDefintionsEventName(data.sourceId), data);
    };
    IsolatedDynamicDataTransceiver.prototype._notifyPropertyValueReceived = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(data.sourceId, data.propertyId), data);
    };
    IsolatedDynamicDataTransceiver.prototype._notifyAnnotatedPropertyValueReceived = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPEventManager"].instance.raiseEvent(_common_DynamicDataEventNames__WEBPACK_IMPORTED_MODULE_3__["DynamicDataEventNames"].getPropertyValueEventName(data.sourceId, data.propertyId, true), data);
    };
    /**
     * The service key for IsolatedDynamicDataTransceiver service.
     */
    IsolatedDynamicDataTransceiver.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["ServiceKey"].create('sp-dynamic-data:IsolatedDynamicDataTransceiver', IsolatedDynamicDataTransceiver);
    return IsolatedDynamicDataTransceiver;
}());



/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: DynamicDataReference, _PageContextDataSource, _DynamicDataManager, _IsolatedDynamicDataManager, _IsolatedDynamicDataTransceiver, _IsolatedDynamicDataMessageType, _DynamicDataUtilities */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DynamicDataReference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DynamicDataReference */ "ilZV");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DynamicDataReference", function() { return _DynamicDataReference__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _PageContextDataSource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PageContextDataSource */ "uyAI");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_PageContextDataSource", function() { return _PageContextDataSource__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _DynamicDataManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DynamicDataManager */ "Ro9o");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_DynamicDataManager", function() { return _DynamicDataManager__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _isolated_IsolatedDynamicDataManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isolated/IsolatedDynamicDataManager */ "7Mqo");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_IsolatedDynamicDataManager", function() { return _isolated_IsolatedDynamicDataManager__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _isolated_IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isolated/IsolatedDynamicDataTransceiver */ "jNSU");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_IsolatedDynamicDataTransceiver", function() { return _isolated_IsolatedDynamicDataTransceiver__WEBPACK_IMPORTED_MODULE_4__["IsolatedDynamicDataTransceiver"]; });

/* harmony import */ var _isolated_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isolated/IsolatedDynamicDataMessageType */ "IkEF");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_IsolatedDynamicDataMessageType", function() { return _isolated_IsolatedDynamicDataMessageType__WEBPACK_IMPORTED_MODULE_5__["IsolatedDynamicDataMessageType"]; });

/* harmony import */ var _common_DynamicDataUtilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./common/DynamicDataUtilities */ "FpZ8");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_DynamicDataUtilities", function() { return _common_DynamicDataUtilities__WEBPACK_IMPORTED_MODULE_6__["DynamicDataUtilities"]; });

/**
 * SharePoint Framework support for dynamic data bindings.
 *
 * @remarks
 * This package provides the necessary infrastructure classes and public APIs necessary
 * to run dynamic data, and implement components that use it.
 *
 * @packagedocumentation
 */









/***/ }),

/***/ "nv8F":
/*!*********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/tslib/1.9.3/node_modules/tslib/tslib.es6.js ***!
  \*********************************************************************************************************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (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__, "__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)
            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 __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 };
}


/***/ }),

/***/ "qITA":
/*!*********************************!*\
  !*** ./lib/loc/Strings.resx.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_/GZrHjuQO4erDQbBRI2XSA';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "uyAI":
/*!**************************************!*\
  !*** ./lib/PageContextDataSource.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loc/Strings.resx */ "qITA");
/* harmony import */ var _common_DynamicDataUtilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./common/DynamicDataUtilities */ "FpZ8");



/**
 * The page context data source.  It should contain all app-level contextual information
 *
 * @internal
 */
var PageContextDataSource = /** @class */ (function () {
    function PageContextDataSource(serviceScope) {
        var _this = this;
        this._propertyDefinitions = {};
        this._eventDefinitions = {};
        this._serviceScope = serviceScope;
        this._serviceScope.whenFinished(function () {
            _this._dynamicDataManager = serviceScope.consume(_common_DynamicDataUtilities__WEBPACK_IMPORTED_MODULE_2__["DynamicDataUtilities"].IDynamicDataManagerServiceKey);
            _this._dynamicDataManager.addSource({
                id: PageContextDataSource.pageContextDataSourceId,
                metadata: {
                    title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].pageContextDataSourceTitle,
                    description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].pageContextDataSourceDescription,
                    componentId: '1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8',
                    alias: PageContextDataSource._pageContextDataSourceAlias
                },
                getPropertyDefinitions: _this.getPropertyDefinitions.bind(_this),
                getAnnotatedPropertyValue: _this.getAnnotatedPropertyValue.bind(_this),
                getPropertyValue: _this.getPropertyValue.bind(_this),
                sendEvent: _this.sendEvent.bind(_this),
                // Async apis
                getPropertyDefinitionsAsync: _this.getPropertyDefinitionsAsync.bind(_this),
                allowedEventsAsync: _this.allowedEventsAsync.bind(_this),
                getAnnotatedPropertyValueAsync: _this.getAnnotatedPropertyValueAsync.bind(_this),
                getPropertyValueAsync: _this.getPropertyValueAsync.bind(_this)
            });
        });
    }
    /**
     *
     * @param propInfo - The "sub-datasource" property.
     */
    PageContextDataSource.prototype.addPropertyHandler = function (propInfo) {
        var _this = this;
        // add the property references
        propInfo.dynamicDataFunctions.getPropertyDefinitions().forEach(function (propertyDefinition) {
            _this._propertyDefinitions[propertyDefinition.id] = {
                propertyCollectionId: propInfo.id,
                annotatedPropertyValueFunction: propInfo.dynamicDataFunctions.getAnnotatedPropertyValue,
                propertyValueFunction: propInfo.dynamicDataFunctions.getPropertyValue,
                definition: propertyDefinition
            };
        });
        // add the event references
        if (propInfo.dynamicDataFunctions.allowedEvents) {
            propInfo.dynamicDataFunctions.allowedEvents().forEach(function (event) {
                if (propInfo.dynamicDataFunctions.sendEvent) {
                    _this._eventDefinitions[event.name] = {
                        propertyCollectionId: propInfo.id,
                        sendEvent: propInfo.dynamicDataFunctions.sendEvent,
                        definition: event
                    };
                }
            });
        }
        this._dynamicDataManager.notifySourceChanged(PageContextDataSource.pageContextDataSourceId);
    };
    /**
     * Used by the downstream content providers to indicate that their properties have changed.
     * @param propertyId - the propertyId (not the context property info, but the property id) that has changed
     */
    PageContextDataSource.prototype.notifyPropertyChanged = function (propertyId) {
        this._dynamicDataManager.notifyPropertyChanged(PageContextDataSource.pageContextDataSourceId, propertyId);
    };
    /**
     * Remove all of the properties
     *
     * @param id - the id of the data provider that you want to remove.
     */
    PageContextDataSource.prototype.removePropertyHandler = function (id) {
        // First, delete the property references
        for (var prop in this._propertyDefinitions) {
            if (this._propertyDefinitions.hasOwnProperty(prop)) {
                if (this._propertyDefinitions[prop].propertyCollectionId === id) {
                    delete this._propertyDefinitions[prop];
                }
            }
        }
        // then delete the event references
        for (var prop in this._eventDefinitions) {
            if (this._eventDefinitions.hasOwnProperty(prop)) {
                if (this._eventDefinitions[prop].propertyCollectionId === id) {
                    delete this._eventDefinitions[prop];
                }
            }
        }
        this._dynamicDataManager.notifySourceChanged('PageContext');
    };
    /**
     * Iterate over all of the properties we are aware of and return
     * the set
     */
    PageContextDataSource.prototype.getPropertyDefinitions = function () {
        var retVal = [];
        for (var prop in this._propertyDefinitions) {
            if (this._propertyDefinitions.hasOwnProperty(prop)) {
                retVal.push(this._propertyDefinitions[prop].definition);
            }
        }
        return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(retVal);
    };
    /**
     * Return the property value for the given property ID.  This will
     * iterate over all the different data providers exposed in the
     * context data source
     *
     * @param propertyId - the name of the property you want the value for
     *
     */
    PageContextDataSource.prototype.getPropertyValue = function (propertyId) {
        if (this._propertyDefinitions[propertyId]) {
            // We know this property - call the correct prop value function for it
            return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(this._propertyDefinitions[propertyId].propertyValueFunction(propertyId));
        }
        return undefined;
    };
    /**
     * Returns the annotated value for the property supplied.
     * @param propertyId - The id of the property that contains the annotated value.
     */
    PageContextDataSource.prototype.getAnnotatedPropertyValue = function (propertyId) {
        if (this._propertyDefinitions[propertyId]) {
            // we know this property - call the correct annotated prop value function.
            return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(this._propertyDefinitions[propertyId].annotatedPropertyValueFunction(propertyId));
        }
        else {
            return { sampleValue: undefined };
        }
    };
    /**
     * Iterate over all of the properties we are aware of and return
     * the set
     */
    PageContextDataSource.prototype.getPropertyDefinitionsAsync = function () {
        return Promise.resolve(this.getPropertyDefinitions());
    };
    /**
     * Return the property value for the given property ID.  This will
     * iterate over all the different data providers exposed in the
     * context data source
     * @param propertyId - the name of the property you want the value for.
     */
    PageContextDataSource.prototype.getPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this.getPropertyValue(propertyId));
    };
    /**
     * Returns the annotated value for the property supplied.
     * @param propertyId - The id of the property that contains the annotated value.
     */
    PageContextDataSource.prototype.getAnnotatedPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this.getAnnotatedPropertyValue(propertyId));
    };
    /**
     * iterate over all the known event handlers and return the
     * complete set.
     */
    PageContextDataSource.prototype.allowedEventsAsync = function () {
        var retVal = [];
        for (var prop in this._eventDefinitions) {
            if (this._eventDefinitions.hasOwnProperty(prop)) {
                retVal.push(this._eventDefinitions[prop].definition);
            }
        }
        return Promise.resolve(Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(retVal));
    };
    /**
     * This simply passes the sendEvent method to the appropriate
     * function end point.
     *
     * @param eventName - The event name that is being called
     * @param data - The data to be passed into the event
     */
    PageContextDataSource.prototype.sendEvent = function (eventName, data) {
        if (this._eventDefinitions[eventName]) {
            this._eventDefinitions[eventName].sendEvent(eventName, data);
        }
    };
    /**
     * Id of the PageContext dynamic data source.
     */
    PageContextDataSource.pageContextDataSourceId = 'PageContext';
    PageContextDataSource._pageContextDataSourceAlias = 'Page Context';
    return PageContextDataSource;
}());
/* harmony default export */ __webpack_exports__["default"] = (PageContextDataSource);


/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-lodash-subset":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-dynamic-data_en-us.js.map


define("1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8_1.10.0", ["@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-dynamic-data"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__) { return /******/ (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 = "./sp-page-context.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_/GZrHjuQO4erDQbBRI2XSA": {
      "ddpSiteDataTitle": "Site properties",
      "ddpUserDataTitle": "Current user information",
      "ddpUrlDataTitle": "Query string",
      "ddvUserName": "User name",
      "ddvUserNameDesc": "The name of the user",
      "ddvUserEmail": "User email",
      "ddvUserEmailDesc": "The email of the current user",
      "ddvUserLogin": "Login name",
      "ddvUserLoginDesc": "The name that the user logged in with",
      "ddvSiteUrl": "Site link",
      "ddvSiteUrlDesc": "The URL of the current site",
      "ddvSiteCollectionUrl": "Site collection link",
      "ddvSiteCollectionUrlDesc": "The URL of the current site collection",
      "ddvListUrl": "List link",
      "ddvListUrlDesc": "The URL of the current list",
      "ddvItemId": "Item id",
      "ddvItemIdDesc": "The id of the current item",
      "ddvSiteClassification": "Site classification",
      "ddvSiteClassificationDesc": "The classification of the current site",
      "ddvSiteTitle": "Site title",
      "ddvSiteTitleDesc": "The title of the current site",
      "ddvSiteDescription": "Site description",
      "ddvSiteDescriptionDesc": "The description of the current site",
      "ddvSiteLogoUrl": "Site logo",
      "ddvSiteLogoUrlDesc": "The URL of the site logo",
      "ddvQueryParameters": "Query parameters",
      "ddvQueryParametersDesc": "The different query strings that are on the current URL",
      "ddvFragment": "URL fragment",
      "ddvFragmentDesc": "The part of the current URL that is after the #",
      "ddpSearchDataTitle": "Search",
      "ddvSearchQuery": "Search query",
      "ddvSearchQueryDesc": "The query used to get search results"
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-page-context.js":
/*!****************************!*\
  !*** ./sp-page-context.js ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @microsoft/sp-dynamic-data */ "@microsoft/sp-dynamic-data"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE__84nK__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vpy3__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "6ZP6":
/*!***********************!*\
  !*** ./lib/SPUser.js ***!
  \***********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SPTimeZone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPTimeZone */ "PL7Z");


/**
  * This class is primarily used with the `PageContext` class.  It provides contextual information
  * for the SharePoint user that is accessing the page.
  *
  * @public
  */
var SPUser = /** @class */ (function () {
    /**
     * @internal
     */
    function SPUser(data) {
        this._validate(data);
        this._displayName = data.displayName || '';
        this._email = data.email || '';
        this._isAnonymousGuestUser = data.isAnonymousGuestUser;
        this._isExternalGuestUser = data.isExternalGuestUser;
        this._loginName = data.loginName || '';
        // Remove the or statement when changes reach Prod everywhere.
        this._preferUserTimeZone = data.preferUserTimeZone || false;
        this._timeZone = data.timeZoneInfo ?
            new _SPTimeZone__WEBPACK_IMPORTED_MODULE_1__["default"](data.timeZoneInfo) : undefined;
        this._firstDayOfWeek = data.firstDayOfWeek;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPUser.prototype._serialize = function () {
        return {
            loginName: this.loginName,
            displayName: this.displayName,
            email: this.email,
            isAnonymousGuestUser: this.isAnonymousGuestUser,
            firstDayOfWeek: this.firstDayOfWeek,
            isExternalGuestUser: this.isExternalGuestUser,
            preferUserTimeZone: this.preferUserTimeZone
        };
    };
    Object.defineProperty(SPUser.prototype, "displayName", {
        /**
         * The display name for the current user.
         *
         * @remarks
         * Example: `"John Doe"`
         */
        get: function () {
            return this._displayName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "email", {
        /**
         * The email address for the current user.
         *
         * @remarks
         * Example: `"example@contoso.com"`
         */
        get: function () {
            return this._email;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "isAnonymousGuestUser", {
        /**
         * Returns if the current user is an anonymous guest.
         */
        get: function () {
            return this._isAnonymousGuestUser;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "isExternalGuestUser", {
        /**
         * Returns true if the current user is an external guest.
         */
        get: function () {
            return this._isExternalGuestUser;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "loginName", {
        /**
         * The login name for current user.
         *
         * @remarks
         * Example: on-premise user: `"domain\user"`, online user: `"user@domain.com"`
         */
        get: function () {
            return this._loginName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "preferUserTimeZone", {
        /**
         * This boolean represents if a the user or web's time zone settings should be used
         * to display the current time.
         */
        get: function () {
            return this._preferUserTimeZone;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "timeZoneInfo", {
        /**
         * Returns the user's regional timezone settings or undefined if they haven't been set.
         *
         * @beta
         */
        get: function () {
            return this._timeZone;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPUser.prototype, "firstDayOfWeek", {
        /**
         * Returns the user's regional first day of week setting or undefined if it hasn't been set.
         *
         * @beta
         */
        get: function () {
            // @todo VSO#490622: Consider better API structure to avoid confusing user with return value of undefined.
            return this._firstDayOfWeek;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an ISPUserData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an ISPUserData object
     */
    SPUser.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPUserData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.isAnonymousGuestUser, 'isAnonymousGuestUser');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.isExternalGuestUser, 'isExternalGuestUser');
    };
    return SPUser;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPUser);


/***/ }),

/***/ "84nK":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__84nK__;

/***/ }),

/***/ "CRGG":
/*!***********************!*\
  !*** ./lib/SPList.js ***!
  \***********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SPPermission__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SPPermission */ "W9Pz");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);


/**
  * This class is primarily used with the `PageContext` class.  It provides contextual
  * information for the SharePoint list that hosts the page.
  *
  * @public
  */
var SPList = /** @class */ (function () {
    /**
     * @internal
     */
    function SPList(data) {
        this._validate(data);
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse(data.id);
        this._permissions = new _SPPermission__WEBPACK_IMPORTED_MODULE_0__["default"](data.permissions);
        this._serverRelativeUrl = data.serverRelativeUrl;
        this._title = data.title;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPList.prototype._serialize = function () {
        return {
            id: this.id.toString(),
            title: this.title,
            permissions: this.permissions._serialize(),
            serverRelativeUrl: this.serverRelativeUrl
        };
    };
    Object.defineProperty(SPList.prototype, "id", {
        /**
         * The GUID that identifies the SPList on the server. This property could be undefined
         * if the information isn't available.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPList.prototype, "permissions", {
        /**
         * Return the SPPermission object that represents the set of permissions that the
         * current user has for interacting with the list.
         */
        get: function () {
            return this._permissions;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPList.prototype, "serverRelativeUrl", {
        /**
         * Returns the server-relative URL for this `SPList`.
         *
         * @remarks
         * Example: "/sites/PubSite"
         */
        get: function () {
            return this._serverRelativeUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPList.prototype, "title", {
        /**
         * Returns the title for this `SPList`.
         */
        get: function () {
            return this._title;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an `ISPListData` object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an `ISPListData` object
     */
    SPList.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(data, 'ISPListData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(data.baseTemplate, 'baseTemplate');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].tryParse(data.id), 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(data.permissions, 'permissions');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(data.serverRelativeUrl, 'serverRelativeUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(data.title, 'title');
    };
    return SPList;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPList);


/***/ }),

/***/ "GLAT":
/*!*************************************!*\
  !*** ./lib/O365GroupAssociation.js ***!
  \*************************************/
/*! exports provided: O365GroupAssociationType, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O365GroupAssociationType", function() { return O365GroupAssociationType; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * {@inheritDoc  O365GroupAssociation."type"}
 * @alpha
 */
var O365GroupAssociationType;
(function (O365GroupAssociationType) {
    O365GroupAssociationType[O365GroupAssociationType["Unknown"] = 0] = "Unknown";
    O365GroupAssociationType[O365GroupAssociationType["Private"] = 1] = "Private";
    O365GroupAssociationType[O365GroupAssociationType["Public"] = 2] = "Public";
})(O365GroupAssociationType || (O365GroupAssociationType = {}));
/**
  * This class is primarily used with the `PageContext` class. If the site is associated with an O365
  * group, this object provides contextual information about the group.
  *
  * @alpha
  */
var O365GroupAssociation = /** @class */ (function () {
    /**
     * @internal
     */
    function O365GroupAssociation(data) {
        this._validate(data);
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.id);
        switch (data.type) {
            case 'Private':
                this._type = O365GroupAssociationType.Private;
                break;
            case 'Public':
                this._type = O365GroupAssociationType.Public;
                break;
            default:
                this._type = O365GroupAssociationType.Unknown;
                break;
        }
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    O365GroupAssociation.prototype._serialize = function () {
        return {
            id: this.id.toString(),
            type: this.type
        };
    };
    Object.defineProperty(O365GroupAssociation.prototype, "id", {
        /**
         * The GUID associated with the site's O365 Group.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(O365GroupAssociation.prototype, "type", {
        /**
         * This enum identifies if the associated O365 Group private or public or unknown.
         */
        get: function () {
            return this._type;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an IO365GroupAssociationData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an IO365GroupAssociationData object
     */
    O365GroupAssociation.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'IO365GroupData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.id, 'data.id');
    };
    return O365GroupAssociation;
}());
/* harmony default export */ __webpack_exports__["default"] = (O365GroupAssociation);


/***/ }),

/***/ "GPn3":
/*!***************************!*\
  !*** ./lib/SPListItem.js ***!
  \***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
  * This class is primarily used with the `PageContext` class.  It provides contextual
  * information for the SharePoint list item that hosts the page.
  *
  * @public
  */
var SPListItem = /** @class */ (function () {
    /**
     * @internal
     */
    function SPListItem(data) {
        this._validate(data);
        this._id = data.id;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPListItem.prototype._serialize = function () {
        return {
            id: this.id
        };
    };
    Object.defineProperty(SPListItem.prototype, "id", {
        /**
         * The number that identifies the `SPListItem` on the server.
         *
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an `ISPListItemData` object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an `ISPListItemData` object
     */
    SPListItem.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPListItemData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.id, 'id');
    };
    return SPListItem;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPListItem);


/***/ }),

/***/ "JRdv":
/*!**************************************************************!*\
  !*** ./lib/pageManager/SharePointPageContextDataProvider.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
  * The page context represents contextual information about the SharePoint page that
  * is currently being viewed, such as its site URL, the client-side application ID,
  * the current user, etc.  The page context objects themselves represent key information
  * that is needed e.g. to identify the site/web/list/listitem in a REST service call,
  * but it is not a full cache with invalidation and change notifications.

  * @alpha
  */
var SharePointPageContextDataProvider = /** @class */ (function () {
    function SharePointPageContextDataProvider() {
    }
    /**
     * Populates the webPart pageContext using the data from the app Page Context. AppPageContext
     * must be populated already.
     * @internal
     */
    SharePointPageContextDataProvider._createPageContextData = function (spPageContextInfo) {
        var pageContextData = {
            aadInfo: !!spPageContextInfo.aadInstanceUrl && !!spPageContextInfo.aadTenantId &&
                !!spPageContextInfo.aadUserId ? {
                instanceUrl: spPageContextInfo.aadInstanceUrl,
                tenantId: spPageContextInfo.aadTenantId,
                userId: spPageContextInfo.aadUserId
            } : undefined,
            cultureInfo: {
                currentCultureName: spPageContextInfo.currentCultureName,
                currentUICultureName: spPageContextInfo.currentUICultureName,
                isRightToLeft: document.documentElement.dir === 'rtl' ?
                    true :
                    false
            },
            list: spPageContextInfo.listId && spPageContextInfo.listId !== '' ? {
                baseTemplate: spPageContextInfo.listBaseTemplate,
                id: spPageContextInfo.listId,
                permissions: spPageContextInfo.listPermsMask,
                serverRelativeUrl: spPageContextInfo.listUrl,
                title: spPageContextInfo.listTitle
            } : undefined,
            listItem: spPageContextInfo.pageItemId && spPageContextInfo.pageItemId !== -1 ? {
                id: spPageContextInfo.pageItemId
            } : undefined,
            page: spPageContextInfo.socialBarEnabled ? {
                socialBarEnabled: spPageContextInfo.socialBarEnabled
            } : {},
            site: {
                absoluteUrl: spPageContextInfo.siteAbsoluteUrl,
                cdnPrefix: spPageContextInfo.cdnPrefix,
                classification: spPageContextInfo.siteClassification,
                correlationId: spPageContextInfo.CorrelationId,
                group: spPageContextInfo.groupId && spPageContextInfo.groupId !== '' ? {
                    id: spPageContextInfo.groupId,
                    type: spPageContextInfo.groupType
                } : undefined,
                id: spPageContextInfo.siteId,
                isNoScriptEnabled: spPageContextInfo.isNoScriptEnabled,
                recycleBinItemCount: spPageContextInfo.RecycleBinItemCount,
                serverRelativeUrl: spPageContextInfo.siteServerRelativeUrl,
                serverRequestPath: spPageContextInfo.serverRequestPath,
                sitePagesEnabled: spPageContextInfo.sitePagesEnabled
            },
            user: {
                isAnonymousGuestUser: spPageContextInfo.isAnonymousGuestUser,
                isExternalGuestUser: spPageContextInfo.isExternalGuestUser,
                displayName: spPageContextInfo.userDisplayName,
                email: spPageContextInfo.userEmail,
                loginName: spPageContextInfo.userLoginName,
                preferUserTimeZone: spPageContextInfo.preferUserTimeZone,
                timeZoneInfo: spPageContextInfo.userTimeZoneData ? {
                    daylightDate: spPageContextInfo.userTimeZoneData.DaylightDate,
                    daylightOffset: spPageContextInfo.userTimeZoneData.DaylightBias,
                    description: spPageContextInfo.userTimeZoneData.Description,
                    id: spPageContextInfo.userTimeZoneData.Id,
                    offset: spPageContextInfo.userTimeZoneData.Bias,
                    standardDate: spPageContextInfo.userTimeZoneData.StandardDate,
                    standardOffset: spPageContextInfo.userTimeZoneData.StandardBias
                } : undefined,
                // Server returns null if firstDayOfWeek setting is not configured or user doesn't have permission to access.
                firstDayOfWeek: typeof spPageContextInfo.userFirstDayOfWeek === 'number'
                    ? spPageContextInfo.userFirstDayOfWeek : undefined
            },
            web: {
                absoluteUrl: spPageContextInfo.webAbsoluteUrl,
                id: spPageContextInfo.webId,
                isAppWeb: spPageContextInfo.isAppWeb,
                language: spPageContextInfo.webLanguage,
                languageName: spPageContextInfo.webLanguageName,
                logoUrl: spPageContextInfo.webLogoUrl,
                permissions: spPageContextInfo.webPermMasks,
                serverRelativeUrl: spPageContextInfo.webServerRelativeUrl,
                templateName: spPageContextInfo.webTemplate,
                description: spPageContextInfo.webDescription,
                timeZoneInfo: spPageContextInfo.webTimeZoneData ? {
                    daylightDate: spPageContextInfo.webTimeZoneData.DaylightDate,
                    daylightOffset: spPageContextInfo.webTimeZoneData.DaylightBias,
                    description: spPageContextInfo.webTimeZoneData.Description,
                    id: spPageContextInfo.webTimeZoneData.Id,
                    offset: spPageContextInfo.webTimeZoneData.Bias,
                    standardDate: spPageContextInfo.webTimeZoneData.StandardDate,
                    standardOffset: spPageContextInfo.webTimeZoneData.StandardBias
                } : undefined,
                // Server returns null if firstDayOfWeek setting is not configured or user doesn't have permission to access.
                firstDayOfWeek: typeof spPageContextInfo.webFirstDayOfWeek === 'number'
                    ? spPageContextInfo.webFirstDayOfWeek : undefined,
                title: spPageContextInfo.webTitle
            },
            featureInfo: spPageContextInfo.featureInfo
        };
        pageContextData.site.sitePagesFeatureVersion = spPageContextInfo.sitePagesFeatureVersion;
        return pageContextData;
    };
    return SharePointPageContextDataProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (SharePointPageContextDataProvider);


/***/ }),

/***/ "JhOW":
/*!************************!*\
  !*** ./lib/SPField.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);


/**
 * A field represents the data model for a column in SharePoint list view.
 * @remarks
 *
 * This is the client-side equivalent for SharePoint `SPField` class. It is used with the
 * `@microsoft/sp-listview-extensibility` package.
 *
 * @public
 */
var SPField = /** @class */ (function () {
    /**
     * @internal
     */
    function SPField(data) {
        this._validate(data);
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.id);
        this._internalName = data.internalName || '';
        this._fieldType = data.fieldType || '';
        this._required = data.isRequired;
        this._displayName = data.displayName || '';
        this._clientSideComponentId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.clientSideComponentId);
        this._clientSideComponentProperties = data.clientSideComponentProperties || '';
    }
    Object.defineProperty(SPField.prototype, "id", {
        /**
         * The GUID identifier for this field.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "internalName", {
        /**
         * The internal name of the field. This name is usually used to find the field.
         */
        get: function () {
            return this._internalName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "fieldType", {
        /**
         * The type of the field represented as a string
         */
        get: function () {
            return this._fieldType;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "isRequired", {
        /**
         * Whether the field is required for each list item in the list
         */
        get: function () {
            return this._required;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "displayName", {
        /**
         * The display name of the field. This name is shown as column name in UI.
         */
        get: function () {
            return this._displayName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "clientSideComponentId", {
        /**
         * The unique identifier of the client-side component associated with the field.
         */
        get: function () {
            return this._clientSideComponentId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPField.prototype, "clientSideComponentProperties", {
        /**
         * This property is only used when a `ClientSideComponentId` is specified.  It is optional.
         *
         * @remarks
         * If non-empty, the string must contain a JSON object with custom initialization properties
         * whose format and meaning are defined by the client-side component.
         */
        get: function () {
            return this._clientSideComponentProperties;
        },
        enumerable: true,
        configurable: true
    });
    SPField.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPFieldData object');
        // ...
    };
    return SPField;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPField);


/***/ }),

/***/ "L14d":
/*!****************************!*\
  !*** ./lib/CultureInfo.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
  * This class is primarily used with the `PageContext` class.  It provides culture info
  * for the current user of the application.
  *
  * @public
  */
var CultureInfo = /** @class */ (function () {
    /**
      * @internal
      */
    function CultureInfo(data) {
        this._validate(data);
        this._currentCultureName = data.currentCultureName;
        this._currentUICultureName = data.currentUICultureName;
        this._isRightToLeft = data.isRightToLeft;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    CultureInfo.prototype._serialize = function () {
        return {
            currentCultureName: this.currentCultureName,
            currentUICultureName: this.currentUICultureName,
            isRightToLeft: this.isRightToLeft
        };
    };
    Object.defineProperty(CultureInfo.prototype, "currentCultureName", {
        /**
         * This string determines the language default format for dates, times, numbers, currency values,
         * the sorting order of text, casing conventions, and string comparisons.
         *
         * @remarks
         *
         * This property may be an empty string, but it will never be undefined.
         *
         * Example: If the currentCultureName is `"en-AU"` then the application could use this information
         * to display the date as 1/8 instead of 8/1.
         */
        get: function () {
            return this._currentCultureName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(CultureInfo.prototype, "currentUICultureName", {
        /**
         * This string determines the default user interface language. This used for localization and
         * translation of text.
         *
         * @remarks
         * This property may have an empty string, but will never be undefined.
         *
         * Example: If the currentUICultureName is `"es-MX"`, then the application could use this
         * information to translate the word "hello" to "hola".
         */
        get: function () {
            return this._currentUICultureName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(CultureInfo.prototype, "isRightToLeft", {
        /**
         * This boolean represents the dominant direction of written text for the default user
         * interface language.
         */
        get: function () {
            return this._isRightToLeft;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an ICultureInfoData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an ICultureInfoData object
     */
    CultureInfo.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ICultureInfoData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.currentCultureName, 'currentCultureName');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.currentUICultureName, 'currentUICultureName');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.isRightToLeft, 'isRightToLeft');
    };
    return CultureInfo;
}());
/* harmony default export */ __webpack_exports__["default"] = (CultureInfo);


/***/ }),

/***/ "PL7Z":
/*!***************************!*\
  !*** ./lib/SPTimeZone.js ***!
  \***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
  * It provides timezone information from SharePoint. A conversion from UTC to local
  * time can be calculated by using the following formula.
  *
  * @remarks
  *
  * ```
  * isDaylightSavingsTime = isCurrentDate after DaylightSavingsDate but before the StandardDate
  * LocalTime = UTCTime - Offset - (isDaylightSavingsTime ? daylightOffset : standardOffset)
  * June 11, 2 A.M. PST = June 11, 9 A.M. - (480 minutes) - (-60  minutes)
  * ```
  *
  * @beta
  */
var SPTimeZone = /** @class */ (function () {
    /**
     * @internal
     */
    function SPTimeZone(data) {
        this._validate(data);
        this._daylightDate = data.daylightDate;
        this._daylightOffset = data.daylightOffset;
        this._description = data.description;
        this._id = data.id;
        this._offset = data.offset;
        this._standardDate = data.standardDate;
        this._standardOffset = data.standardOffset;
    }
    Object.defineProperty(SPTimeZone.prototype, "daylightDate", {
        /**
         * Gets the date on which daylight time begins for the time zone.
         */
        get: function () {
            return this._daylightDate;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "daylightOffset", {
        /**
         * Gets the offset in the number of minutes that daylight time for the time zone differs
         * from Coordinated Universal Time (UTC).
         */
        get: function () {
            return this._daylightOffset;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "description", {
        /**
         * Gets the description for the time zone.
         */
        get: function () {
            return this._description;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "id", {
        /**
         * Gets the ID of the time zone.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "offset", {
        /**
         * Gets the offset in the number of minutes that the time zone differs from Coordinated
         * Universal Time (UTC).
         */
        get: function () {
            return this._offset;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "standardDate", {
        /**
         * Gets the date on which standard time begins for the time zone.
         */
        get: function () {
            return this._standardDate;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPTimeZone.prototype, "standardOffset", {
        /**
         * Gets the offset in the number of minutes that standard time for the time zone differs
         * from coordinated universal time (UTC).
         */
        get: function () {
            return this._standardOffset;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an ISPTimeZoneData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an ISPTimeZoneData object
     */
    SPTimeZone.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPTimeZoneData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.daylightDate, 'daylightDate');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.daylightOffset, 'daylightOffset');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.description, 'description');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.id, 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.offset, 'offset');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.standardDate, 'standardDate');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.standardOffset, 'standardOffset');
    };
    return SPTimeZone;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPTimeZone);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "W9Pz":
/*!*****************************!*\
  !*** ./lib/SPPermission.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Used to test whether the current user has a requested set of permissions.
 *
 * @remarks
 *
 * Specifies the built-in permissions available in SharePoint Foundation
 *
 * For more information, see:
 * {@link https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx}
 *
 * @public
 */
var SPPermission = /** @class */ (function () {
    function SPPermission(value) {
        if (!value || value.High === undefined || value.Low === undefined) {
            throw new Error('Must use an object with a Low and High number value');
        }
        this._value = value;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPPermission.prototype._serialize = function () {
        return {
            value: this.value
        };
    };
    Object.defineProperty(SPPermission.prototype, "value", {
        /**
         * Returns the value of this SPPermission object
         */
        get: function () {
            return this._value;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function for testing whether a given permission mask has any of the requested permissions.
     * @param requestedPerms - Any number of SPPermission objects to be compared against the original
     */
    SPPermission.prototype.hasAnyPermissions = function () {
        var _this = this;
        var requestedPerms = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            requestedPerms[_i] = arguments[_i];
        }
        return (requestedPerms || []).some(function (permission) {
            return _this.hasPermission(permission);
        });
    };
    /**
     * Function for testing whether a given permission mask has all of the requested permissions.
     * @param requestedPerms - Any number of SPPermission objects to be compared against the original
     */
    SPPermission.prototype.hasAllPermissions = function () {
        var _this = this;
        var requestedPerms = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            requestedPerms[_i] = arguments[_i];
        }
        return (requestedPerms || []).every(function (permission) {
            return _this.hasPermission(permission);
        });
    };
    /**
     * Function for testing whether a given permission mask has the requested permission.
     * @param requestedPerm - The SPPermission object to be compared against the original
     */
    SPPermission.prototype.hasPermission = function (requestedPerm) {
        /* tslint:disable:no-bitwise */
        return requestedPerm &&
            ((requestedPerm.value.Low & this.value.Low) === requestedPerm.value.Low) &&
            ((requestedPerm.value.High & this.value.High) === requestedPerm.value.High);
        /* tslint:enable:no-bitwise */
    };
    /**
     * Has no permissions on the Web site. Not available through the user interface.
     */
    SPPermission.emptyMask = new SPPermission({ High: 0x0, Low: 0x0 });
    // list/document perms  =0x000000000000XXXX
    /**
     * View items in lists, documents in document libraries, and view Web discussion comments.
     */
    SPPermission.viewListItems = new SPPermission({ High: 0x0, Low: 0x1 });
    /**
     * Add items to lists, add documents to document libraries, and add Web discussion comments.
     */
    SPPermission.addListItems = new SPPermission({ High: 0x0, Low: 0x2 });
    /**
     * Edit items in lists, edit documents in document libraries, edit Web discussion comments in documents,
     * and customize web part Pages in document libraries.
     */
    SPPermission.editListItems = new SPPermission({ High: 0x0, Low: 0x4 });
    /**
     * Delete items from a list, documents from a document library, and Web discussion comments in documents.
     */
    SPPermission.deleteListItems = new SPPermission({ High: 0x0, Low: 0x8 });
    /**
     * Approve a minor version of a list item or document.
     */
    SPPermission.approveItems = new SPPermission({ High: 0x0, Low: 0x10 });
    /**
     * View the source of documents with server-side file handlers.
     */
    SPPermission.openItems = new SPPermission({ High: 0x0, Low: 0x20 });
    /**
     * View past versions of a list item or document.
     */
    SPPermission.viewVersions = new SPPermission({ High: 0x0, Low: 0x40 });
    /**
     * Delete past versions of a list item or document.
     */
    SPPermission.deleteVersions = new SPPermission({ High: 0x0, Low: 0x80 });
    /**
     * Discard or check in a document which is checked out to another user.
     */
    SPPermission.cancelCheckout = new SPPermission({ High: 0x0, Low: 0x100 });
    /**
     * Create, change, and delete personal views of lists.
     */
    SPPermission.managePersonalViews = new SPPermission({ High: 0x0, Low: 0x200 });
    /**
     * Create and delete lists, add or remove columns in a list, and add or remove public views of a list.
     */
    SPPermission.manageLists = new SPPermission({ High: 0x0, Low: 0x800 });
    /**
     * View forms, views, and application pages, and enumerate lists.
     */
    SPPermission.viewFormPages = new SPPermission({ High: 0x0, Low: 0x1000 });
    // web level perms      =0x0000XXXXXXXX0000,
    /**
     * Allow users to open a Web site, list, or folder to access items inside that container.
     */
    SPPermission.open = new SPPermission({ High: 0x0, Low: 0x20000 });
    /**
     * View pages in a Web site.
     */
    SPPermission.viewPages = new SPPermission({ High: 0x0, Low: 0x20000 });
    /**
     * View the layouts page?
     */
    SPPermission.layoutsPage = new SPPermission({ High: 0x0, Low: 0x21000 });
    /**
     * Add, change, or delete HTML pages or web part Pages, and edit the Web site using a SharePoint
     * Foundation–compatible editor.
     */
    SPPermission.addAndCustomizePages = new SPPermission({ High: 0x0, Low: 0x40000 });
    /**
     * Apply a theme or borders to the entire Web site.
     */
    SPPermission.applyThemeAndBorder = new SPPermission({ High: 0x0, Low: 0x80000 });
    /**
     * Apply a style sheet (.css file) to the Web site.
     */
    SPPermission.applyStyleSheets = new SPPermission({ High: 0x0, Low: 0x100000 });
    /**
     * View reports on Web site usage.
     */
    SPPermission.viewUsageData = new SPPermission({ High: 0x0, Low: 0x200000 });
    /**
     * Create a Web site using Self-Service Site Creation.
     */
    SPPermission.createSSCSite = new SPPermission({ High: 0x0, Low: 0x400000 });
    /**
     * Create subsites such as team sites, Meeting Workspace sites, and Document Workspace sites.
     */
    SPPermission.manageSubwebs = new SPPermission({ High: 0x0, Low: 0x800000 });
    /**
     * Create a group of users that can be used anywhere within the site collection.
     */
    SPPermission.createGroups = new SPPermission({ High: 0x0, Low: 0x1000000 });
    /**
     * Create and change permission levels on the Web site and assign permissions to users and groups.
     */
    SPPermission.managePermissions = new SPPermission({ High: 0x0, Low: 0x2000000 });
    /**
     * Enumerate files and folders in a Web site using Microsoft Office SharePoint Designer 2007 and WebDAV interfaces.
     */
    SPPermission.browseDirectories = new SPPermission({ High: 0x0, Low: 0x4000000 });
    /**
     * View information about users of the Web site.
     */
    SPPermission.browserUserInfo = new SPPermission({ High: 0x0, Low: 0x8000000 });
    /**
     * Add or remove personal web parts on a web part Page.
     */
    SPPermission.addDelPrivateWebParts = new SPPermission({ High: 0x0, Low: 0x10000000 });
    /**
     * Update web parts to display personalized information.
     */
    SPPermission.updatePersonalWebParts = new SPPermission({ High: 0x0, Low: 0x20000000 });
    /**
     * Grant the ability to perform all administration tasks for the Web site as well as manage content.
     *
     * @remarks
     * Activate, deactivate, or edit properties of Web site scoped Features through the object model or
     * through the user interface (UI). When granted on the root Web site of a site collection, activate,
     * deactivate, or edit properties of site collection scoped Features through the object model. To
     * browse to the Site Collection Features page and activate or deactivate site collection scoped
     * Features through the UI, you must be a site collection administrator.
     */
    SPPermission.manageWeb = new SPPermission({ High: 0x0, Low: 0x40000000 });
    /**
     * Use features that launch client applications; otherwise, users must work on documents locally and upload changes.
     */
    SPPermission.useClientIntegration = new SPPermission({ High: 0x10, Low: 0x0 });
    /**
     * Use SOAP, WebDAV, or Microsoft Office SharePoint Designer 2007 interfaces to access the Web site.
     */
    SPPermission.useRemoteAPIs = new SPPermission({ High: 0x20, Low: 0x0 });
    /**
     * Manage alerts for all users of the Web site.
     */
    SPPermission.manageAlerts = new SPPermission({ High: 0x40, Low: 0x0 });
    /**
     * Create e-mail alerts.
     */
    SPPermission.createAlerts = new SPPermission({ High: 0x80, Low: 0x0 });
    /**
     * Allows a user to change his or her user information, such as adding a picture.
     */
    SPPermission.editMyUserInfo = new SPPermission({ High: 0x100, Low: 0x0 });
    /**
     * Enumerate permissions on the Web site, list, folder, document, or list item.
     */
    SPPermission.enumeratePermissions = new SPPermission({ High: 0x40000000, Low: 0x0 });
    /**
     * Has all permissions on the Web site. Not available through the user interface.
     */
    SPPermission.fullMask = new SPPermission({ High: 0x7FFFFFFF, Low: 0xFFFFFFFF });
    return SPPermission;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPPermission);


/***/ }),

/***/ "ZcDP":
/*!*****************************************!*\
  !*** ./lib/AzureActiveDirectoryInfo.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
  * This class is primarily used with the `PageContext` class. It provides information
  * useful for communicating with Azure Active Directory.
  *
  * @alpha
  */
var AzureActiveDirectoryInfo = /** @class */ (function () {
    /**
      * @internal
      */
    function AzureActiveDirectoryInfo(data) {
        this._validate(data);
        this._instanceUrl = data.instanceUrl ? data.instanceUrl : '';
        this._tenantId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.tenantId);
        this._userId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.userId);
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    AzureActiveDirectoryInfo.prototype._serialize = function () {
        return {
            tenantId: this.tenantId.toString(),
            userId: this.userId.toString(),
            instanceUrl: this.instanceUrl
        };
    };
    Object.defineProperty(AzureActiveDirectoryInfo.prototype, "instanceUrl", {
        /**
         * This string returns the URL of the sign in page used to authenticate with Azure Active Directory.
         */
        get: function () {
            return this._instanceUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(AzureActiveDirectoryInfo.prototype, "tenantId", {
        /**
         * This Guid contains the Azure Active Directory's tenant id.
         */
        get: function () {
            return this._tenantId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(AzureActiveDirectoryInfo.prototype, "userId", {
        /**
         * This Guid contains the Azure Active Directory's user id.
         */
        get: function () {
            return this._userId;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an IAzureActiveDirectoryInfoParameters object or its parameters are
     * null, undefined, or an invalid guid.
     *
     * @param data - Data used to construct an IAzureActiveDirectoryInfoParameters object
     */
    AzureActiveDirectoryInfo.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'IAzureActiveDirectoryInfo object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.tenantId), 'tenantId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.userId), 'userId');
    };
    return AzureActiveDirectoryInfo;
}());
/* harmony default export */ __webpack_exports__["default"] = (AzureActiveDirectoryInfo);


/***/ }),

/***/ "cnM3":
/*!*********************!*\
  !*** ./lib/Page.js ***!
  \*********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Exposes information that is associated with the SharePoint web page that is currently being displayed.
 *
 * @remarks
 * The Page object provides access to information that is scoped to the current SharePoint web page, but not
 * stored with the underlying SPListItem. Note that the {@link PageContext.listItem} may be undefined for
 * pages that are not based on a SharePoint list, whereas the PageContext.page will never be undefined.
 *
 * The concept of a "page" is subjective and defined by the router for a particular client-side application.
 *
 * @alpha
 */
var Page = /** @class */ (function () {
    /**
     * @internal
     */
    function Page(data) {
        this._validate(data);
        this._socialBarEnabled = data.socialBarEnabled || false;
    }
    Object.defineProperty(Page.prototype, "socialBarEnabled", {
        /**
         * Returns true if the Social Bar is enabled.
         *
         * @remarks
         * The Social Bar will appear on all modern SharePoint pages with the exception of the home page of a site.
         * It will give users the ability to like a page, see the number of views, likes, and comments on a page,
         * and see the people who have liked a page.
         */
        get: function () {
            return this._socialBarEnabled;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an IPageData object or its required
     * parameters are null or undefined.
     *
     * @param data - Data used to construct a IPageData object
     */
    Page.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'IPage object');
    };
    return Page;
}());
/* harmony default export */ __webpack_exports__["default"] = (Page);


/***/ }),

/***/ "ed5A":
/*!****************************!*\
  !*** ./lib/PageContext.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-dynamic-data */ "84nK");
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _AzureActiveDirectoryInfo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AzureActiveDirectoryInfo */ "ZcDP");
/* harmony import */ var _CultureInfo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CultureInfo */ "L14d");
/* harmony import */ var _SPList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SPList */ "CRGG");
/* harmony import */ var _SPListItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPListItem */ "GPn3");
/* harmony import */ var _SPSite__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SPSite */ "qdg7");
/* harmony import */ var _SPUser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SPUser */ "6ZP6");
/* harmony import */ var _SPWeb__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SPWeb */ "swVP");
/* harmony import */ var _SPFeatureInfo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SPFeatureInfo */ "x7V9");
/* harmony import */ var _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./loc/Strings.resx */ "qITA");












/**
 * The SharePoint page context object.
 *
 * @remarks
 * The page context provides standard definitions for common SharePoint objects
 * that need to be shared between the client-side application, web parts, and other
 * components.  Typically the data is fetched via REST queries when navigating to a
 * new page, but it can also be preloaded by the web server, or filled from a custom
 * application cache.

 * @public
 */
var PageContext = /** @class */ (function () {
    function PageContext(serviceScope) {
        var _this = this;
        this._urlParser = document.createElement('a');
        this._isInitialized = false;
        this._serviceScope = serviceScope;
        this._serviceScope.whenFinished(function () {
            // Create the page context data source:
            // Note that the Initialize function is called multiple times, and each time
            // we mark the datasource as having changed.
            _this._pageContextDataSource = new _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__["_PageContextDataSource"](serviceScope);
            _this._pageContextDataSource.addPropertyHandler({
                id: PageContext._pageContextInfoId,
                dynamicDataFunctions: {
                    getPropertyDefinitions: _this._getPropertyDefinitions.bind(_this),
                    getPropertyValue: _this._getPropertyValue.bind(_this),
                    getAnnotatedPropertyValue: _this._getAnnotatedPropertyValue.bind(_this),
                    allowedEvents: function () { return []; }
                }
            });
        });
        this._getPropertyValue = this._getPropertyValue.bind(this);
    }
    /**
     * Initializes the Page Context.
     * @internal
     */
    // tslint:disable-next-line:no-any
    PageContext.prototype.initialize = function (options, legacyPageContext) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(options, 'options');
        try {
            this._aadInfo = options.aadInfo ? new _AzureActiveDirectoryInfo__WEBPACK_IMPORTED_MODULE_3__["default"](options.aadInfo) : undefined;
            this._cultureInfo = new _CultureInfo__WEBPACK_IMPORTED_MODULE_4__["default"](options.cultureInfo);
            this._list = options.list ? new _SPList__WEBPACK_IMPORTED_MODULE_5__["default"](options.list) : undefined;
            this._listItem = options.listItem ? new _SPListItem__WEBPACK_IMPORTED_MODULE_6__["default"](options.listItem) : undefined;
            this._site = new _SPSite__WEBPACK_IMPORTED_MODULE_7__["default"](options.site);
            this._user = new _SPUser__WEBPACK_IMPORTED_MODULE_8__["default"](options.user);
            this._web = new _SPWeb__WEBPACK_IMPORTED_MODULE_9__["default"](options.web);
            this._spFeatureInfo = new _SPFeatureInfo__WEBPACK_IMPORTED_MODULE_10__["default"](options.featureInfo);
            this._legacyPageContext = legacyPageContext;
        }
        catch (e) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(PageContext._logSource, e, 'initialize');
            throw e;
        }
        this._serviceScope.whenFinished(function () {
            // The datasource was initialized in the constructor because this initialize method is
            // called numerous times.
            _this._pageContextDataSource.notifyPropertyChanged(PageContext._pageContextUserDynamicProperty);
            _this._pageContextDataSource.notifyPropertyChanged(PageContext._pageContextSiteDataDynamicProperty);
            _this._pageContextDataSource.notifyPropertyChanged(PageContext._pageContextUserDynamicProperty);
        });
        this._isInitialized = true;
    };
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    PageContext.prototype._serialize = function () {
        return {
            aadInfo: this.aadInfo ? this.aadInfo._serialize() : undefined,
            cultureInfo: this.cultureInfo._serialize(),
            list: this.list ? this.list._serialize() : undefined,
            listItem: this.listItem ? this.listItem._serialize() : undefined,
            site: this.site._serialize(),
            user: this.user._serialize(),
            web: this.web._serialize(),
            _featureInfo: this._featureInfo._serialize()
        };
    };
    /**
     * Sets the search query value for the page context dynamic data.
     * Updating the value triggers a notification to dynamic data consumers for that property.
     *
     * @param searchQuery - Search query to set.
     * @internal
     */
    PageContext.prototype._setSearchQuery = function (searchQuery) {
        // If the value is the same, do not update. This avoids unnecessary callbacks for the same value.
        if (this._isSearchDynamicDataEnabled() && this._searchQuery !== searchQuery) {
            this._searchQuery = searchQuery;
            this._pageContextDataSource.notifyPropertyChanged(PageContext._pageContextSearchDataDynamicProperty);
        }
    };
    Object.defineProperty(PageContext.prototype, "aadInfo", {
        /**
         * Contextual information for communicating with Azure Active Directory.
         * If the current page doesn't have an associated Azure Active Directory tenant, this
         * property will be undefined.
         */
        get: function () {
            return this._aadInfo;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "cultureInfo", {
        /**
         * It provides culture info for the current user of the application.
         * This class is primarily used with the `PageContext` class.
         */
        get: function () {
            return this._cultureInfo;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "list", {
        /**
         * Contextual information for the SharePoint list that is hosting the page.
         * If there is no list associated to the current page, this property will be undefined.
         */
        get: function () {
            return this._list;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "listItem", {
        /**
         * Contextual information for the SharePoint list item that is hosting the page.
         * If there is no list item associated to the current page, this property will be undefined.
         */
        get: function () {
            return this._listItem;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "page", {
        /**
         * Exposes information that is associated with the SharePoint web page that is currently being displayed.
         * @alpha
         */
        get: function () {
            return this._page;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "site", {
        /**
         * Contextual information for the SharePoint site collection ("SPSite") that is hosting the page.
         */
        get: function () {
            return this._site;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "user", {
        /**
         * It provides contextual information for the SharePoint user that is accessing the page.
         * This class is primarily used with the `PageContext` class.
         */
        get: function () {
            return this._user;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "web", {
        /**
         * Contextual information for the SharePoint site ("SPWeb") that is hosting the page.
         */
        get: function () {
            return this._web;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "_featureInfo", {
        /**
         * Contextual information for the features that are enabled on the SharePoint site
         * that is hosting the page.
         * @internal
         */
        get: function () {
            return this._spFeatureInfo;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "legacyPageContext", {
        /**
         * An object providing classic SharePoint properties that may be required by certain legacy scripts.
         *
         * @remarks
         * This property is provided to facilitate migration of legacy code. It returns a JavaScript
         * object whose contents are similar to the `_spPageContextInfo` window variable from classic pages.
         * The contents of this variable may change in future releases of SharePoint.  For this reason,
         * new projects are encouraged to use the SharePoint Framework TypeScript APIs instead, since they
         * are fully documented and provide reliable backwards compatibility guarantees.
         *
         * NOTE: If certain functionality is exposed in the `legacyPageContext` but does not seem to have
         * a proper TypeScript API, please file an issue on GitHub.  The intention is that no modern application
         * should need to rely on the `legacyPageContext` object.
         */
        // tslint:disable-next-line:no-any
        get: function () {
            return this._legacyPageContext;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(PageContext.prototype, "isInitialized", {
        /**
         * Returns whether the `PageContext` has been initialized.
         */
        get: function () {
            return this._isInitialized;
        },
        enumerable: true,
        configurable: true
    });
    PageContext.prototype._getPropertyDefinitions = function () {
        var properties = [
            {
                id: PageContext._pageContextSiteDataDynamicProperty,
                title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddpSiteDataTitle
            },
            {
                id: PageContext._pageContextUserDynamicProperty,
                title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddpUserDataTitle
            },
            {
                id: PageContext._pageContextUrlDataDynamicProperty,
                title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddpUrlDataTitle
            }
        ];
        if (this._isSearchDynamicDataEnabled()) {
            properties.push({
                id: PageContext._pageContextSearchDataDynamicProperty,
                title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddpSearchDataTitle
            });
        }
        return properties;
    };
    PageContext.prototype._getPropertyValue = function (propertyId) {
        switch (propertyId) {
            case PageContext._pageContextUserDynamicProperty:
                return {
                    userName: this.user.displayName,
                    userEmail: this.user.email,
                    userLogin: this.user.loginName
                };
            case PageContext._pageContextSiteDataDynamicProperty:
                return {
                    siteUrl: this.web.absoluteUrl,
                    siteCollectionUrl: this.site.absoluteUrl,
                    listUrl: document && document.location && this.list && document.location.origin + this.list.serverRelativeUrl,
                    itemId: this.listItem && this.listItem.id,
                    siteClassification: this.site.classification,
                    siteTitle: this.web.title,
                    siteDescription: this.web.description,
                    siteLogoUrl: document && document.location && document.location.origin + this.web.logoUrl
                };
            case PageContext._pageContextUrlDataDynamicProperty:
                return {
                    queryParameters: this._getUrlQueryParameterCollection(),
                    fragment: this._getUrlFragmentIdentifier()
                };
            case PageContext._pageContextSearchDataDynamicProperty:
                return this._isSearchDynamicDataEnabled()
                    ? {
                        searchQuery: this._searchQuery
                    }
                    : undefined;
            default:
                return undefined;
        }
    };
    PageContext.prototype._getAnnotatedPropertyValue = function (propertyId) {
        var propMetadata = {};
        switch (propertyId) {
            case PageContext._pageContextUserDynamicProperty:
                propMetadata = {
                    userName: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserName,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserNameDesc
                    },
                    userEmail: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserEmail,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserEmailDesc
                    },
                    userLogin: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserLogin,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvUserLoginDesc
                    }
                };
                break;
            case PageContext._pageContextSiteDataDynamicProperty:
                propMetadata = {
                    siteUrl: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteUrl,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteUrlDesc
                    },
                    siteCollectionUrl: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteCollectionUrl,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteCollectionUrlDesc
                    },
                    listUrl: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvListUrl,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvListUrlDesc
                    },
                    itemId: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvItemId,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvItemIdDesc
                    },
                    siteClassification: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteClassification,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteClassificationDesc
                    },
                    siteTitle: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteTitle,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteTitleDesc
                    },
                    siteDescription: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteDescription,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteDescriptionDesc
                    },
                    siteLogoUrl: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteLogoUrl,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSiteLogoUrlDesc
                    }
                };
                break;
            case PageContext._pageContextUrlDataDynamicProperty:
                propMetadata = {
                    queryParameters: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvQueryParameters,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvQueryParametersDesc
                    },
                    fragment: {
                        title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvFragment,
                        description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvFragmentDesc
                    }
                };
                break;
            case PageContext._pageContextSearchDataDynamicProperty:
                if (this._isSearchDynamicDataEnabled()) {
                    propMetadata = {
                        searchQuery: {
                            title: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSearchQuery,
                            description: _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_11__["default"].ddvSearchQueryDesc
                        }
                    };
                }
                else {
                    propMetadata = {};
                }
                break;
        }
        return {
            sampleValue: this._getPropertyValue(propertyId),
            metadata: propMetadata
        };
    };
    /**
     * Returns decoded key-value pair collection for the current page's query parameters.
     *
     * @remarks
     * If the key or value doesn't exist, it adds an empty string instead.
     */
    PageContext.prototype._getUrlQueryParameterCollection = function () {
        this._urlParser.href = window.location.href;
        var queryParams = this._urlParser.search.substring(1).split('&');
        var queryParamCollection = {};
        for (var _i = 0, queryParams_1 = queryParams; _i < queryParams_1.length; _i++) {
            var queryParam = queryParams_1[_i];
            if (queryParam !== '') {
                var params = queryParam.split('=');
                queryParamCollection[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || '');
            }
        }
        return queryParamCollection;
    };
    /**
     * Returns the fragment identifier for the current page's url.
     */
    PageContext.prototype._getUrlFragmentIdentifier = function () {
        this._urlParser.href = window.location.href;
        return this._urlParser.hash.substring(1); // removing '#' which is at the 0 index.
    };
    PageContext.prototype._isSearchDynamicDataEnabled = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(1626 /* CSISearchQueryExtension */);
    };
    /**
     * The service key for PageContext.
     */
    PageContext.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-page-context:PageContext', PageContext);
    PageContext._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('PageContext');
    PageContext._pageContextInfoId = 'PageContextInfoProperties';
    PageContext._pageContextUserDynamicProperty = 'UserData';
    PageContext._pageContextSiteDataDynamicProperty = 'SiteData';
    PageContext._pageContextUrlDataDynamicProperty = 'UrlData';
    PageContext._pageContextSearchDataDynamicProperty = 'SearchData';
    return PageContext;
}());
/* harmony default export */ __webpack_exports__["default"] = (PageContext);


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: Page, PageContext, SPWeb, SPSite, SPUser, SPField, SPList, _SPFeatureInfo, SPListItem, CultureInfo, O365GroupAssociation, O365GroupAssociationType, SPPermission, SharePointPageContextDataProvider, SPTimeZone, AzureActiveDirectoryInfo */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Page */ "cnM3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Page", function() { return _Page__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _PageContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PageContext */ "ed5A");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PageContext", function() { return _PageContext__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _SPWeb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SPWeb */ "swVP");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPWeb", function() { return _SPWeb__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _SPSite__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SPSite */ "qdg7");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPSite", function() { return _SPSite__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _SPUser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SPUser */ "6ZP6");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPUser", function() { return _SPUser__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _SPField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SPField */ "JhOW");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPField", function() { return _SPField__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _SPList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPList */ "CRGG");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPList", function() { return _SPList__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _SPFeatureInfo__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SPFeatureInfo */ "x7V9");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_SPFeatureInfo", function() { return _SPFeatureInfo__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _SPListItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SPListItem */ "GPn3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPListItem", function() { return _SPListItem__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _CultureInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CultureInfo */ "L14d");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CultureInfo", function() { return _CultureInfo__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _O365GroupAssociation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./O365GroupAssociation */ "GLAT");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "O365GroupAssociation", function() { return _O365GroupAssociation__WEBPACK_IMPORTED_MODULE_10__["default"]; });

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

/* harmony import */ var _SPPermission__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./SPPermission */ "W9Pz");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPPermission", function() { return _SPPermission__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _pageManager_SharePointPageContextDataProvider__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./pageManager/SharePointPageContextDataProvider */ "JRdv");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SharePointPageContextDataProvider", function() { return _pageManager_SharePointPageContextDataProvider__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _SPTimeZone__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./SPTimeZone */ "PL7Z");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPTimeZone", function() { return _SPTimeZone__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _AzureActiveDirectoryInfo__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./AzureActiveDirectoryInfo */ "ZcDP");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AzureActiveDirectoryInfo", function() { return _AzureActiveDirectoryInfo__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/**
 * Page context services for the SharePoint Framework
 *
 * @remarks
 * The page context allows an application and its web parts to share common
 * data about the current page, such as its contents, URL, list, user, permissions,
 * navigation menu, etc.
 *
 * @packagedocumentation
 */

















/***/ }),

/***/ "qITA":
/*!*********************************!*\
  !*** ./lib/loc/Strings.resx.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_/GZrHjuQO4erDQbBRI2XSA';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "qdg7":
/*!***********************!*\
  !*** ./lib/SPSite.js ***!
  \***********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _O365GroupAssociation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./O365GroupAssociation */ "GLAT");


/**
  * This class is primarily used with the `PageContext` class.  It provides contextual
  * information for the SharePoint site collection ("SPSite") that hosts the page.
  *
  * @public
  */
var SPSite = /** @class */ (function () {
    /**
     * @internal
     */
    function SPSite(data) {
        this._validate(data);
        this._absoluteUrl = data.absoluteUrl;
        this._cdnPrefix = data.cdnPrefix || '';
        this._classification = data.classification;
        this._correlationId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.correlationId);
        this._group = data.group ? new _O365GroupAssociation__WEBPACK_IMPORTED_MODULE_1__["default"](data.group) : undefined;
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.id);
        this._isNoScriptEnabled = data.isNoScriptEnabled;
        this._recycleBinItemCount = data.recycleBinItemCount;
        this._serverRelativeUrl = data.serverRelativeUrl;
        this._serverRequestPath = data.serverRequestPath;
        this._sitePagesEnabled = data.sitePagesEnabled;
        this._sitePagesFeatureVersion = data.sitePagesFeatureVersion ? data.sitePagesFeatureVersion : 0;
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPSite.prototype._serialize = function () {
        return {
            absoluteUrl: this.absoluteUrl,
            cdnPrefix: this.cdnPrefix,
            classification: this.classification,
            correlationId: this.correlationId.toString(),
            group: this.group ? this.group._serialize() : undefined,
            id: this.id.toString(),
            isNoScriptEnabled: this.isNoScriptEnabled,
            recycleBinItemCount: this.recycleBinItemCount,
            serverRelativeUrl: this.serverRelativeUrl,
            serverRequestPath: this.serverRequestPath,
            sitePagesEnabled: this.sitePagesEnabled
        };
    };
    Object.defineProperty(SPSite.prototype, "absoluteUrl", {
        /**
         * Returns the absolute URL for this SPSite.
         *
         * @remarks
         * Example: "https://example.com/sites/PubSite"
         */
        get: function () {
            return this._absoluteUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "cdnPrefix", {
        /**
         * Returns the prefix of the application's specified cdn or an empty string if there isn't one.
         */
        get: function () {
            return this._cdnPrefix;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "classification", {
        /**
         * Returns the classification of the site.
         */
        get: function () {
            return this._classification;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "correlationId", {
        /**
         * Returns the correlation id to the current server request.
         */
        get: function () {
            return this._correlationId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "group", {
        /**
         * Contextual information about the O365 Group associated with this site.
         * If there is no O365Group associated with the current site, this property will be undefined.
         */
        get: function () {
            return this._group;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "id", {
        /**
         * The GUID that identifies the SPSite on the server.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "isNoScriptEnabled", {
        /**
         * Returns true if isNoScript has been enabled on the SPSite.
         */
        get: function () {
            return this._isNoScriptEnabled;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "recycleBinItemCount", {
        /**
         * The amount of items in the recycle bin.
         */
        get: function () {
            return this._recycleBinItemCount;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "serverRelativeUrl", {
        /**
         * Returns the server-relative URL for this SPSite.
         *
         * @remarks
         * Example: "/sites/PubSite"
         */
        get: function () {
            return this._serverRelativeUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "serverRequestPath", {
        /**
         * Returns serverRelativeUrl of the original request.
         *
         * @remarks
         * Example: "/teams/SPClientTest/SitePages/Home.aspx"
         */
        get: function () {
            return this._serverRequestPath;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "sitePagesEnabled", {
        /**
         * Returns true if SitePages are enabled on this SPSite.
         */
        get: function () {
            return this._sitePagesEnabled;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPSite.prototype, "sitePagesFeatureVersion", {
        /**
         * Returns site pages feature version number if defined on this SPSite.
         * Example, for version 16.0.4.0 this would return 4.
         *
         * @alpha
         */
        get: function () {
            return this._sitePagesFeatureVersion;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an ISPSiteData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an ISPSiteData object
     */
    SPSite.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPSiteData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.absoluteUrl, 'absoluteUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.classification, 'classification');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.correlationId), 'correlationId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.id), 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.isNoScriptEnabled, 'isNoScriptEnabled');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.recycleBinItemCount, 'recycleBinItemCount');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.serverRequestPath, 'serverRequestPath');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.serverRelativeUrl, 'serverRelativeUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.sitePagesEnabled, 'sitePagesEnabled');
    };
    return SPSite;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPSite);


/***/ }),

/***/ "swVP":
/*!**********************!*\
  !*** ./lib/SPWeb.js ***!
  \**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SPPermission__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPPermission */ "W9Pz");
/* harmony import */ var _SPTimeZone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SPTimeZone */ "PL7Z");



/**
  * This class is primarily used with the `PageContext` class. It provides contextual
  * information for the SharePoint site ("SPWeb") that hosts the page.
  *
  * @public
  */
var SPWeb = /** @class */ (function () {
    /**
     * @internal
     */
    function SPWeb(data) {
        this._validate(data);
        this._absoluteUrl = data.absoluteUrl;
        this._id = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse(data.id);
        this._isAppWeb = data.isAppWeb;
        this._language = data.language;
        this._languageName = data.languageName;
        this._logoUrl = data.logoUrl;
        this._permissions = new _SPPermission__WEBPACK_IMPORTED_MODULE_1__["default"](data.permissions);
        this._timeZone = data.timeZoneInfo ?
            new _SPTimeZone__WEBPACK_IMPORTED_MODULE_2__["default"](data.timeZoneInfo) : undefined;
        this._firstDayOfWeek = data.firstDayOfWeek;
        this._serverRelativeUrl = data.serverRelativeUrl;
        this._templateName = data.templateName || '';
        this._title = data.title || '';
        this._description = data.description || '';
    }
    /**
     * Returns a JSON serializable object.
     * @internal
     */
    SPWeb.prototype._serialize = function () {
        return {
            id: this.id.toString(),
            title: this.title,
            description: this.description,
            serverRelativeUrl: this.serverRelativeUrl,
            absoluteUrl: this.absoluteUrl,
            isAppWeb: this.isAppWeb,
            language: this.language,
            languageName: this.languageName,
            logoUrl: this.logoUrl,
            permissions: this.permissions._serialize(),
            templateName: this.templateName
        };
    };
    Object.defineProperty(SPWeb.prototype, "absoluteUrl", {
        /**
         * Returns the absolute URL for this SPWeb.
         * Example: `"https://example.com/sites/PubSite/SubWeb"`
         */
        get: function () {
            return this._absoluteUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "id", {
        /**
         * The GUID that identifies the SPWeb on the server.
         */
        get: function () {
            return this._id;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "isAppWeb", {
        /**
         * Returns true if this `SPWeb` the container web for an `SPApp`.
         */
        get: function () {
            return this._isAppWeb;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "language", {
        /**
         * Returns the locale identifier (LCID) for the default language of the website.
         *
         * @remarks
         * Example: 1033 represents the locale identifier for en-US.
         */
        get: function () {
            return this._language;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "languageName", {
        /**
         * Returns the language name for the default language of the website.
         *
         * @remarks
         * Example: en-US represents the English language in the US locale.
         */
        get: function () {
            // @todo: VS #789033, remove the fallback to empty string when server change returns languageName.
            return this._languageName || '';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "logoUrl", {
        /**
         * Returns the absolute URL of the website logo.
         *
         * @remarks
         * Example:` https://example.com/sites/PubSite/SubWeb/logo.jpg`
         */
        get: function () {
            return this._logoUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "permissions", {
        /**
         * Return the SPPermission object that represents the set of permissions that the
         * current user has for interacting with the web.
         */
        get: function () {
            return this._permissions;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "timeZoneInfo", {
        /**
         * Returns the web's regional timezone settings or undefined if they haven't been set.
         *
         * @beta
         */
        get: function () {
            return this._timeZone;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "firstDayOfWeek", {
        /**
         * Returns the web's regional first day of week setting or undefined if it hasn't been set.
         *
         * @beta
         */
        get: function () {
            // @todo VSO#490622: Consider better API structure to avoid confusing user with return value of undefined.
            return this._firstDayOfWeek;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "serverRelativeUrl", {
        /**
         * Returns the server-relative URL for this SPWeb.
         *
         * @remarks
         * Example: `"/sites/PubSite/SubWeb"`
         */
        get: function () {
            return this._serverRelativeUrl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "templateName", {
        /**
         * Returns the string representing the numeric identifier for the site definition or
         * site template that was used to create the site.
         *
         * @remarks
         * Example: `"1"` represents the team site template when creating a new site on SharePoint.
         */
        get: function () {
            return this._templateName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "title", {
        /**
         * Returns the title of the current SPWeb.
         */
        get: function () {
            return this._title;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPWeb.prototype, "description", {
        /**
         * Returns the description of the current SPWeb.
         */
        get: function () {
            return this._description;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Function that throws an exception if an ISPWebData object or its parameters are
     * null or undefined.
     *
     * @param data - Data used to construct an ISPWebData object
     */
    SPWeb.prototype._validate = function (data) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPWebData object');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.absoluteUrl, 'absoluteUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(data.id), 'id');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.isAppWeb, 'isAppWeb');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.language, 'language');
        // @todo: VS #789033, enable validation of languageName when server change returns languageName.
        // Validate.isNotNullOrUndefined(data.languageName, 'languageName');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.logoUrl, 'logoUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.permissions, 'permissions');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data.serverRelativeUrl, 'serverRelativeUrl');
    };
    return SPWeb;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPWeb);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "x7V9":
/*!******************************!*\
  !*** ./lib/SPFeatureInfo.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */

/**
  * This class is primarily used with the `PageContext` class. It provides contextual
  * information for the features enabled on the SharePoint site that hosts the page.
  *
  * @internal
  */
var SPFeatureInfo = /** @class */ (function () {
    /**
     * @param data - Raw JSON data from the html file
     */
    function SPFeatureInfo(data) {
        this._features = new Map();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(data, 'ISPFeatureInfoData object');
        for (var key in data) {
            if (key !== undefined) {
                // tslint:disable-next-line:no-any
                var value = data[key];
                this._features.set(key, { version: value.Version, enabled: value.Enabled });
            }
        }
    }
    /**
     * Returns a JSON serializable object.
     */
    SPFeatureInfo.prototype._serialize = function () {
        var data = {};
        this._features.forEach(function (value, key) {
            data[key] = { Version: value.version, Enabled: value.enabled };
        });
        return data;
    };
    /**
     * Returns feature information for a given feature.
     * @param featureName - Name of a feature to lookup
     */
    SPFeatureInfo.prototype.get = function (featureName) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(featureName, 'featureName');
        return this._features.get(featureName);
    };
    return SPFeatureInfo;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPFeatureInfo);


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-dynamic-data":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-page-context_en-us.js.map


define("c07208f0-ea3b-4c1a-9965-ac1b825211a6_1.10.0", ["@microsoft/sp-core-library","@microsoft/sp-diagnostics"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__) { return /******/ (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 = "./sp-http.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_+tvmKa3YEOqWGKKXzwjtaw": {
      "additionalCredentialsWarning": "To view the information on this page, you need to verify your identity.",
      "servicePrincipalNotAvaliableError": "To view the information on this page, ask a global or SharePoint admin in your organization to go to the API management page in the new SharePoint admin center.",
      "graphClientInitializationError": "Sorry, we couldn't make a connection to Microsoft Graph."
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-http.js":
/*!********************!*\
  !*** ./sp-http.js ***!
  \********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vpy3__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-http": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"sp-http-msal":"sp-http-msal","vendors~sp-http-adal":"vendors~sp-http-adal","vendors~sp-http-msgraphclient":"vendors~sp-http-msgraphclient"}[chunkId]||chunkId) + "_" + {"sp-http-msal":"c9a0974f935bb4b7c673","vendors~sp-http-adal":"0cb268d1f48a141a5dec","vendors~sp-http-msgraphclient":"f295e646a935d7756da0"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonpc07208f0_ea3b_4c1a_9965_ac1b825211a6_1_10_0"] = window["webpackJsonpc07208f0_ea3b_4c1a_9965_ac1b825211a6_1_10_0"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-http(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "+ORw":
/*!************************************!*\
  !*** ./lib/common/KillSwitches.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @copyright (c) Microsoft Corporation. All rights reserved.
 */

/**
 * Kill switches should be ordered by create time.
 * Method names should be `is***KillSwitchActivated`.
 */
var KillSwitches = /** @class */ (function () {
    function KillSwitches() {
    }
    KillSwitches.isNullBodyStatusKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('5ac0c3c1-7495-49d9-b765-c9bdf28485e1'), '03/07/2019', 'Use null body to construct Response to resolve exception for null body status');
    };
    KillSwitches.isFixEdgeNullBodyStatusKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('a54c9582-c0ca-4d1e-9897-1b1c3425a1d2'), '05/13/2019', 'Fix Edge browser null body status exception using null instead of undefined');
    };
    KillSwitches.isExposeCorrelationIdAndResponseBodyKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('7a6d687d-6ce2-47af-9dec-1cda5bc7163f'), '06/19/2019', 'Expose batch request id to each batch response and expose batch response body');
    };
    return KillSwitches;
}());
/* harmony default export */ __webpack_exports__["default"] = (KillSwitches);


/***/ }),

/***/ "0UKY":
/*!**********************************************************!*\
  !*** ./lib/oauthTokenProvider/AdalAuthContextManager.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AdalAuthContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdalAuthContext */ "gU3R");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _OBOTokenProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OBOTokenProvider */ "J1+X");




/**
 * Class for managing multiple instances of the authentication context.
 * @internal
 */
var AdalAuthContextManager = /** @class */ (function () {
    function AdalAuthContextManager() {
        /**
         * Handles the loading of Adal.js. It is set to protected so that it can
         * be mocked in a unit test.
         * @internal
         */
        this._loadAdalJsModulePromise = undefined;
        this._authContextDictionary = new Map();
    }
    AdalAuthContextManager.convertTokenParametersToConfig = function (tokenProviderParameters) {
        var extraQueryParameter;
        if (tokenProviderParameters.userPrincipalName &&
            !_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(AdalAuthContextManager.usePromptQueryParamKillSwitchGuid, '03/19/19', 'Use login hint to resolve ambiguous users failure')) {
            extraQueryParameter = "login_hint=" + encodeURIComponent(tokenProviderParameters.userPrincipalName);
        }
        return {
            clientId: tokenProviderParameters.servicePrincipalId,
            redirectUri: tokenProviderParameters.redirectUri,
            instance: _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["UrlUtilities"].removeEndSlash(tokenProviderParameters.aadInstanceUrl) + '/',
            loadFrameTimeout: 10000,
            tenant: tokenProviderParameters.aadTenantId,
            navigateToLoginRequestUrl: false,
            extraQueryParameter: extraQueryParameter
        };
    };
    // Adal-angular exports include an inject function that takes a AuthenticationContext
    // configuration object and returns a instance of the AuthenticationContext.
    // https://github.com/AzureAD/azure-activedirectory-library-for-js/blob/dev/lib/adal.js
    AdalAuthContextManager.prototype.getAuthContext = function (tokenProviderConfiguration, sharePointOBOProviderConfiguration) {
        var _this = this;
        if (!this._loadAdalJsModulePromise) {
            this._loadAdalJsModulePromise = this._loadAdalJs();
        }
        return this._loadAdalJsModulePromise.then(function (adalModule) {
            if (sharePointOBOProviderConfiguration) {
                return new _OBOTokenProvider__WEBPACK_IMPORTED_MODULE_3__["OBOTokenProvider"](adalModule.inject(AdalAuthContextManager.convertTokenParametersToConfig(tokenProviderConfiguration)), sharePointOBOProviderConfiguration);
            }
            // Using the servicePrincipalId as a unique identiifier for Authentication Context objects
            if (!_this._authContextDictionary.has(tokenProviderConfiguration.servicePrincipalId)) {
                var authContext = new _AdalAuthContext__WEBPACK_IMPORTED_MODULE_0__["default"](adalModule.inject(AdalAuthContextManager.convertTokenParametersToConfig(tokenProviderConfiguration)), tokenProviderConfiguration.aadUserId);
                _this._authContextDictionary.set(tokenProviderConfiguration.servicePrincipalId, authContext);
            }
            return _this._authContextDictionary.get(tokenProviderConfiguration.servicePrincipalId);
        });
    };
    AdalAuthContextManager.prototype._loadAdalJs = function () {
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(AdalAuthContextManager.addAdditionalTelemetryKillSwitchGuid, '09/12/19', 'Instrument the time it takes to load ADAL.js')) {
            var loadAdalQosMonitor_1 = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('AadTokenProvider.LoadAdal');
            return __webpack_require__.e(/*! import() | sp-http-adal */ "vendors~sp-http-adal").then(__webpack_require__.t.bind(null, /*! adal-angular */ "qiIv", 7))
                .then(function (adalModule) {
                loadAdalQosMonitor_1.writeSuccess();
                return adalModule;
            })
                .catch(function (e) {
                loadAdalQosMonitor_1.writeUnexpectedFailure(e);
                throw e;
            });
        }
        else {
            return __webpack_require__.e(/*! import() | sp-http-adal */ "vendors~sp-http-adal").then(__webpack_require__.t.bind(null, /*! adal-angular */ "qiIv", 7));
        }
    };
    AdalAuthContextManager.usePromptQueryParamKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('44a40d56-a9b7-4059-9569-78abe3f7f360');
    AdalAuthContextManager.addAdditionalTelemetryKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('9f4cb7b8-8489-4d53-bf27-6d26c848f23f');
    return AdalAuthContextManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (AdalAuthContextManager);


/***/ }),

/***/ "0s3q":
/*!************************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientHelper.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../graphHttpClient/GraphHttpClientContext */ "iDX0");
/* harmony import */ var _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientHelper */ "8Y7G");
/* harmony import */ var _ODataVersion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ODataVersion */ "GSEB");
/* harmony import */ var _SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SPHttpClientResponse */ "mCft");
/* harmony import */ var _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../oauthTokenProvider/AadTokenProviders */ "KkUw");
/* harmony import */ var _SPConstants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPConstants */ "2bYP");







/**
 * Private - this class contains some internal code shared between SPHttpClient
 * and SPHttpClientBatch.
 */
var SPHttpClientHelper = /** @class */ (function () {
    function SPHttpClientHelper() {
    }
    SPHttpClientHelper.cloneHeaders = function (options) {
        var clonedHeaders = new Headers();
        var temp = new Request('', { headers: options.headers || {} });
        temp.headers.forEach(function (value, name) {
            clonedHeaders.append(name, value); // note name/value are reversed
        });
        return clonedHeaders;
    };
    SPHttpClientHelper.applyDefaultHeaders = function (headers, configuration, options, oDataVersion) {
        // Add some default headers that people should specify for any REST query,
        // assuming it's not missing
        if (configuration.jsonRequest) {
            if (options.method && options.method.toUpperCase() !== 'GET') {
                if (!headers.has('Content-Type')) {
                    // Assume our POST data is in JSON format unless otherwise specified.
                    // Also explicitly specify utf-8 (the default).
                    if (oDataVersion === _ODataVersion__WEBPACK_IMPORTED_MODULE_3__["default"].v3) {
                        headers.append('Content-Type', 'application/json;odata=verbose;charset=utf-8');
                    }
                    else if (oDataVersion === _ODataVersion__WEBPACK_IMPORTED_MODULE_3__["default"].v4) {
                        headers.append('Content-Type', 'application/json;charset=utf-8');
                    }
                    else {
                        // oDataVersion can also be undefined, if the version is unknown
                        throw new Error('ISPHttpClientConfiguration.jsonRequest is enabled, which requires'
                            + ' the "OData-Version" header to be 3.0 or 4.0');
                    }
                }
            }
        }
        if (configuration.jsonResponse) {
            if (!headers.has('Accept')) {
                if (oDataVersion === _ODataVersion__WEBPACK_IMPORTED_MODULE_3__["default"].v3) {
                    headers.append('Accept', 'application/json');
                }
                else if (oDataVersion === _ODataVersion__WEBPACK_IMPORTED_MODULE_3__["default"].v4) {
                    // Request for the OData response to be 'minimal' (the default).  The guidance:
                    // "If a client prefers a very small wire size and is intelligent enough to
                    // compute data using metadata expressions, the Accept header should include
                    // odata.metadata=minimal. If compute is more expensive than wire size or the
                    // client is incapable of computing control information, odata.metadata=full
                    // directs the service to inline the control information that normally would be
                    // computed from metadata expressions in the payload. odata.metadata=none is an
                    // option for clients that have out-of-band knowledge or don't require control
                    // information."
                    // http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html
                    headers.append('Accept', 'application/json;odata.metadata=minimal');
                }
                else {
                    // oDataVersion can also be undefined, if the version is unknown
                    throw new Error('ISPHttpClientConfiguration.jsonResponse is enabled, which requires'
                        + ' the "OData-Version" header to be 3.0 or 4.0');
                }
            }
        }
    };
    /**
     * Use a heuristic to infer the base URL for authentication.
     *
     * @remarks
     * Attempts to infer the SPWeb URL associated with the provided REST URL, by looking
     * for common SharePoint path components such as "_api", "_layouts", or "_vit_bin".
     * This is necessary for operations such as the X-RequestDigest
     * and ODATA batching, which require POSTing to a separate REST endpoint
     * in order to complete a request.
     *
     * For example, if the requestUrl is "/sites/site/web/_api/service",
     * the returned URL would be "/sites/site/web".  Or if the requestUrl
     * is "http://example.com/_layouts/service", the returned URL would be
     * "http://example.com".
     *
     * If the URL cannot be determined, an exception is thrown.
     *
     * @param requestUrl - The URL for a SharePoint REST service
     * @returns the inferred SPWeb URL
     */
    SPHttpClientHelper.getWebUrlFromRequestUrl = function (requestUrl) {
        // First we need to guess the webUrl by looking for a reserved
        // segment such as "_api":
        var segmentIndex = -1;
        var upperCaseUrl = requestUrl.toUpperCase();
        for (var _i = 0, _a = _SPConstants__WEBPACK_IMPORTED_MODULE_6__["default"].RESERVED_URL_SEGMENTS; _i < _a.length; _i++) {
            var reservedUrlSegment = _a[_i];
            segmentIndex = upperCaseUrl.indexOf(reservedUrlSegment);
            if (segmentIndex >= 0) {
                return requestUrl.substr(0, segmentIndex);
            }
        }
        throw new Error('Unable to determine web URL');
    };
    /**
     * All network requests are routed through this method, which calls the
     * underlying IFetchProvider.fetch().
     */
    SPHttpClientHelper.fetchCore = function (url, configuration, options, serviceScope, digestCache, fetchProvider, logSourceId) {
        return Promise.resolve().then(function () {
            if (!options) {
                options = {};
            }
            var modifiedOptions = Object.assign({}, options);
            if (configuration.defaultSameOriginCredentials) {
                // Set the default credentials
                if (!options.credentials) {
                    modifiedOptions.credentials = 'same-origin';
                }
            }
            // NOTE: RequestInit.cache is apparently currently unimplemented in Chrome
            // and our polyfill, so we don't specify it here.
            var headers = SPHttpClientHelper.cloneHeaders(options);
            modifiedOptions.headers = headers;
            if (configuration.defaultODataVersion) {
                if (!headers.has('OData-Version')) {
                    headers.append('OData-Version', configuration.defaultODataVersion.toString());
                }
            }
            // If the header is omitted, the SharePoint server defaults to version 3.0 in most cases
            // (but maybe not all cases?).  Rather than trying to guess, we will simply leave
            // oDataVersion as undefined, and report an error e.g. if ISPHttpClientConfiguration.jsonRequest
            // needs to know the OData version.
            var oDataVersion = _ODataVersion__WEBPACK_IMPORTED_MODULE_3__["default"].tryParseFromHeaders(headers);
            SPHttpClientHelper.applyDefaultHeaders(headers, configuration, options, oDataVersion);
            if (configuration.requestDigest) {
                // NOTE: If options.method is missing, the default is GET
                if (options.method) {
                    var method = options.method.toUpperCase();
                    if (method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS') {
                        // For writes, SharePoint requires an "X-RequestDigest" header.
                        if (!headers.has('X-RequestDigest')) {
                            var webUrl = options.webUrl || SPHttpClientHelper.getWebUrlFromRequestUrl(url);
                            // Now fetch the digest
                            var promise = digestCache.fetchDigest(webUrl)
                                .then(function (digest) {
                                headers.append('X-RequestDigest', digest);
                                return SPHttpClientHelper._fetchWithInstrumentation(configuration, new Request(url, modifiedOptions), serviceScope, fetchProvider, logSourceId);
                            });
                            return SPHttpClientHelper.handleAuthenticationErrors(promise, webUrl, digestCache)
                                .then(function (response) {
                                return new _SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_4__["default"](response);
                            });
                        }
                    }
                }
            }
            // Otherwise, don't fetch a digest, don't handle authentication errors
            return SPHttpClientHelper._fetchWithInstrumentation(configuration, new Request(url, modifiedOptions), serviceScope, fetchProvider, logSourceId)
                .then(function (response) {
                return new _SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_4__["default"](response);
            });
        });
    };
    /**
     * For both SPHttpClient and SPHttpClientBatch, we fetch a digest and then use it to
     * to make a REST call.  If the REST fails in a way that the digest is invalid,
     * we need to discard the bad digest.  This function is the common implementation
     * of that logic, in case we need to add special cases in the future.
     *
     * @param promise       - the promise returned by IFetchProvider.fetch()
     * @param webUrl        - the cache key to clear
     * @param digestCache   - the cache
     * @returns             - the promise after this logic is applied
     */
    SPHttpClientHelper.handleAuthenticationErrors = function (promise, webUrl, digestCache) {
        return promise.then(function (response) {
            // If the response is 403, this could be because our digest was invalidated
            // before its natural expiration time.  In this case, we should clear the
            // cache so that next time we will fetch a new digest.
            if (response.status === 403) {
                digestCache.clearDigest(webUrl);
            }
            return response;
        });
    };
    SPHttpClientHelper.overrideHttpMethod = function (options, httpRequestMethod) {
        return _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_2__["default"].overrideHttpMethod(options, httpRequestMethod);
    };
    SPHttpClientHelper._fetchWithInstrumentation = function (configuration, request, serviceScope, fetchProvider, logSourceId) {
        return SPHttpClientHelper._handleFluidEnvironment(request, serviceScope)
            .then(function (modifiedRequest) {
            return _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_2__["default"].fetchCore(configuration, modifiedRequest, serviceScope, fetchProvider, _SPConstants__WEBPACK_IMPORTED_MODULE_6__["default"].SP_HTTP_CLIENT_CLASS_NAME_FETCH);
        });
    };
    SPHttpClientHelper._isFluid = function () {
        return _SPConstants__WEBPACK_IMPORTED_MODULE_6__["default"].FLUID_DOMAINS.indexOf(window.location.host) > -1;
    };
    SPHttpClientHelper._handleFluidEnvironment = function (request, serviceScope) {
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPFlight"].isEnabled(_SPConstants__WEBPACK_IMPORTED_MODULE_6__["default"].SP_TOKEN_FOR_FLUID_ID) && SPHttpClientHelper._isFluid()) {
            var graphContext = serviceScope.consume(_graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_1__["default"].serviceKey);
            return _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_5__["default"].configurable._getTokenInternal(new URL(graphContext.getWebAbsoluteUrl()).origin, _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_5__["default"].preAuthorizedConfiguration)
                .then(function (token) {
                request.headers.set('Authorization', 'Bearer ' + token);
                return request;
            });
        }
        return Promise.resolve(request);
    };
    return SPHttpClientHelper;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientHelper);


/***/ }),

/***/ "0v/C":
/*!**********************************************!*\
  !*** ./lib/httpClient/HttpClientResponse.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * The Response subclass returned by methods such as HttpClient.fetch().
 *
 * @remarks
 * This is a placeholder.  In the future, additional HttpClient-specific functionality
 * may be added to this class.
 *
 * @privateRemarks
 * This class exposes the same members as our typings for the browser's native
 * Response and Body classes, which is why we can say that it "implements" them.
 * It cannot actually inherit from Response because that class does not have a copy
 * constructor (because it would probably be inefficient to copy the response stream).
 *
 * @public
 */
var HttpClientResponse = /** @class */ (function () {
    /**
     * @internal
     */
    function HttpClientResponse(response) {
        this.nativeResponse = response;
    }
    Object.defineProperty(HttpClientResponse.prototype, "body", {
        // Body members
        /**
         * This property is marked as alpha because it is not yet implemented by the `@microsoft/sp-polyfills` package.
         *
         * @alpha
         */
        get: function () { return this.nativeResponse.body; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "bodyUsed", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
         */
        get: function () { return this.nativeResponse.bodyUsed; },
        enumerable: true,
        configurable: true
    });
    /**
     * See documentation for the browser's
     * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
     */
    HttpClientResponse.prototype.arrayBuffer = function () { return this.nativeResponse.arrayBuffer(); };
    /**
     * See documentation for the browser's
     * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
     */
    HttpClientResponse.prototype.blob = function () { return this.nativeResponse.blob(); };
    /**
     * See documentation for the browser's
     * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
     */
    HttpClientResponse.prototype.formData = function () { return this.nativeResponse.formData; }; // tslint:disable-line:no-any
    /**
     * See documentation for the browser's
     * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
     */
    HttpClientResponse.prototype.json = function () { return this.nativeResponse.json(); };
    /**
     * See documentation for the browser's
     * {@link https://developer.mozilla.org/en-US/docs/Web/API/Body | Body} API
     */
    HttpClientResponse.prototype.text = function () { return this.nativeResponse.text(); };
    Object.defineProperty(HttpClientResponse.prototype, "type", {
        // Response members
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.type; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "redirected", {
        /**
         * This property is marked as alpha because it is not yet implemented by the `@microsoft/sp-polyfills` package.
         *
         * @alpha
         */
        get: function () { return this.nativeResponse.redirected; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "url", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.url; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "status", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.status; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "ok", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.ok; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "statusText", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.statusText; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "trailer", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         *
         * This property is marked as alpha because it is not yet implemented by the `@microsoft/sp-polyfills` package.
         *
         * @alpha
         */
        get: function () { return this.nativeResponse.trailer; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(HttpClientResponse.prototype, "headers", {
        /**
         * See documentation for the browser's
         * {@link https://developer.mozilla.org/en-US/docs/Web/API/Response | Response} API
         */
        get: function () { return this.nativeResponse.headers; },
        enumerable: true,
        configurable: true
    });
    /**
     * @virtual
     */
    HttpClientResponse.prototype.clone = function () {
        return new HttpClientResponse(this.nativeResponse.clone());
    };
    return HttpClientResponse;
}());
/* harmony default export */ __webpack_exports__["default"] = (HttpClientResponse);


/***/ }),

/***/ "21FS":
/*!******************************************************!*\
  !*** ./lib/oauthTokenProvider/OAuthTokenProvider.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ms_sp_client_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/sp-client-shared */ "Zjyx");
/* harmony import */ var _OAuthUtilityContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OAuthUtilityContext */ "czIf");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);



/**
 * This class allows one to obtain OAuth tokens
 *
 * OAuth tokens are used to authenticate the user from the sharepoint page
 * to other services such as PowerBI, Sway, Exchange, Yammer, etc.
 *
 * @alpha
 */
var OAuthTokenProvider = /** @class */ (function () {
    function OAuthTokenProvider(serviceScope) {
        this._tokenUtility = new _ms_sp_client_shared__WEBPACK_IMPORTED_MODULE_0__["OAuthUtility"](new _OAuthUtilityContext__WEBPACK_IMPORTED_MODULE_1__["default"](serviceScope));
    }
    /**
     * Fetches the oauth token for a resource if the user that's currently logged in has
     * access to that resource.
     *
     * The OAuth token SHOULD NOT be cached by the caller since it is already cached by the method
     * itself.
     *
     * If the promise returned by this method rejects, there is no point in retrying the same call.
     * If the response from the server signals that the request should be retried this function will do this by itself.
     *
     * An example of a resource would be https://sdfpilot.outlook.com
     *
     * @param resource - the resource for which the token should be obtained
     * @returns A promise that will be fullfiled with the token or that will reject
     *          with an instance of TokenUtilityError
     */
    // @todo VSO:237921 - use the correct typings
    OAuthTokenProvider.prototype.getOAuthToken = function (resource, webUrl) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Validate"].isNotNullOrUndefined(resource, 'resource');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Validate"].isNonemptyString(resource, 'resource');
        return this._tokenUtility.getOAuthToken(resource, webUrl);
    };
    /**
     * Clears the token from a given resource from the internal cache. If there is no token
     * cached for the resource the method does nothing.
     *
     * @param resource - resource for which the token should be cleared from the cache
     */
    OAuthTokenProvider.prototype.clearCachedToken = function (resource) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Validate"].isNotNullOrUndefined(resource, 'resource');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["Validate"].isNonemptyString(resource, 'resource');
        this._tokenUtility.clearCachedToken(resource);
    };
    /**
     * The service key for OAuthTokenProvider.
     */
    OAuthTokenProvider.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["ServiceKey"].create('sp-client-shared:OAuthTokenProvider', OAuthTokenProvider);
    return OAuthTokenProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (OAuthTokenProvider);


/***/ }),

/***/ "2bYP":
/*!*****************************************!*\
  !*** ./lib/spHttpClient/SPConstants.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Internal constants used for the SPHttpClient
 * @internal
 */
var SPConstants = /** @class */ (function () {
    function SPConstants() {
    }
    /**
     * Name of the SPHttpClient class.
     */
    SPConstants.SP_HTTP_CLIENT_CLASS_NAME = 'SPHttpClient';
    SPConstants.SP_HTTP_CLIENT_CLASS_NAME_FETCH = 'SPHttpClient.Fetch';
    /**
     * Flight for adding SharePoint Tokens to the SPHttpClient in Fluid.
     */
    SPConstants.SP_TOKEN_FOR_FLUID_ID = 1716;
    /**
     * Set of domains that Fluid can run in.
     */
    SPConstants.FLUID_DOMAINS = [
        'dev.fluid.office.com',
        'dev.fluidpreview.office.net',
        'fluidpreview.office.net'
    ];
    /**
     * Used to infer the SPWeb's url. See SPHttpClientHelper.getWebUrlFromRequestUrl for more details
     */
    SPConstants.RESERVED_URL_SEGMENTS = [
        '/_API/',
        '/_LAYOUTS/',
        '/_VTI_BIN/'
    ];
    return SPConstants;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPConstants);


/***/ }),

/***/ "3H3x":
/*!***********************************************************!*\
  !*** ./lib/oauthTokenProvider/AadTokenProviderFactory.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _AadTokenProviders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AadTokenProviders */ "KkUw");


/**
 * Returns a preinitialized version of the AadTokenProviderFactory.
 * @public
 */
var AadTokenProviderFactory = /** @class */ (function () {
    function AadTokenProviderFactory() {
    }
    /**
     * Returns an instance of the AadTokenProvider that communicates with the current tenant's configurable
     * Service Principal.
     */
    AadTokenProviderFactory.prototype.getTokenProvider = function () {
        return Promise.resolve(_AadTokenProviders__WEBPACK_IMPORTED_MODULE_1__["default"].configurable);
    };
    /**
     * The service key for AadTokenProviderFactory.
     */
    AadTokenProviderFactory.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:AadTokenProviderFactory', AadTokenProviderFactory);
    return AadTokenProviderFactory;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadTokenProviderFactory);


/***/ }),

/***/ "5emJ":
/*!***********************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientBatch.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/KillSwitches */ "+ORw");
/* harmony import */ var _BatchedRequest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BatchedRequest */ "hWUW");
/* harmony import */ var _SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SPHttpClientResponse */ "mCft");
/* harmony import */ var _httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../httpClient/FetchProvider */ "UE6e");
/* harmony import */ var _DigestCache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DigestCache */ "Qacf");
/* harmony import */ var _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPHttpClientHelper */ "0s3q");
/* harmony import */ var _ODataVersion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ODataVersion */ "GSEB");
/* harmony import */ var _SPHttpClientBatchConfiguration__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SPHttpClientBatchConfiguration */ "9UXQ");
/**
 * @copyright (c) Microsoft Corporation. All rights reserved.
 */









/**
 * The SPHttpClientBatch class accumulates a number of REST service calls and
 * transmits them as a single ODATA batch.  This protocol is documented here:
 * http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html
 *
 * The usage is to call SPHttpClientBatch.fetch() to queue each individual request,
 * and then call SPHttpClientBatch.execute() to execute the batch operation.
 * The execute() method returns a promise that resolves when the real REST
 * call has completed.  Each call to fetch() also returns a promise that will
 * resolve with an SPHttpClientResponse object for that particular request.
 *
 * @privateRemarks
 * The type signature of SPHttpClientBatch class suggests that it should inherit from
 * the HttpClient base class.  However, the operational semantics are different
 * (e.g. nothing happens until execute() is called; further operations are
 * prohibited afterwards; fetch() calls cannot depend on each other).  In the
 * future we might introduce a base class for batches, but it would be separate
 * from the HttpClient hierarchy.  By contrast, the ISPHttpClientBatchOptions
 * does naturally inherit from IHttpClientOptions.
 *
 * @beta
 */
var SPHttpClientBatch = /** @class */ (function () {
    /**
     * Generally third parties should not use this constructor.
     * The recommended way to start a batch is by calling SPHttpClient.beginBatch().
     * @internal
     */
    function SPHttpClientBatch(serviceScope, batchCreationOptions) {
        var _this = this;
        this._batchedRequests = [];
        serviceScope.whenFinished(function () {
            _this._fetchProvider = serviceScope.consume(_httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_4__["fetchProviderServiceKey"]);
            _this._randomNumberGenerator = serviceScope.consume(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["RandomNumberGenerator"].serviceKey);
            _this._digestCache = serviceScope.consume(_DigestCache__WEBPACK_IMPORTED_MODULE_5__["default"].serviceKey);
        });
    }
    /**
     * Queues a new request, and returns a promise that can be used to access
     * the server response (after execute() has completed).
     *
     * @remarks
     * The parameters for this function are basically the same as the WHATWG API standard
     * documented here:
     *
     * {@link https://fetch.spec.whatwg.org/ }
     *
     * However, be aware that certain REST headers are ignored or not allowed inside
     * a batch.  See the ODATA documentation for details.
     *
     * When execute() is called, it will POST to a URL such as
     * "http://example.com/sites/sample/_api/$batch".  Typically SPHttpClientBatch can successfully
     * guess the appropriate SPWeb URL by looking for a reserved URL segment such as "_api"
     * in the first URL passed to fetch().  If not, use ISPHttpClientBatchCreationOptions.webUrl to specify it
     * explicitly.
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of this request; normally this should
     *   be the latest version number from SPHttpClientBatchConfigurations
     * @param options - additional options that affect the request
     *
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    SPHttpClientBatch.prototype.fetch = function (url, configuration, options) {
        if (!options) {
            options = {};
        }
        // Apply most of the same default headers as SPHttpClient
        var modifiedOptions = Object.assign({}, options);
        modifiedOptions.headers = _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].cloneHeaders(options);
        _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].applyDefaultHeaders(modifiedOptions.headers, configuration, options, _ODataVersion__WEBPACK_IMPORTED_MODULE_7__["default"].v4);
        var request = new Request(url, modifiedOptions);
        var requestUrl = request.url;
        if (!this._webUrl) {
            // If the webUrl wasn't provided to the constructor, then we infer it from
            // the first request.
            this._webUrl = _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].getWebUrlFromRequestUrl(requestUrl);
        }
        var batchedRequest = new _BatchedRequest__WEBPACK_IMPORTED_MODULE_2__["default"](request);
        this._batchedRequests.push(batchedRequest);
        return batchedRequest.promise;
    };
    /**
     * Calls fetch(), but sets the method to 'GET'.
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of this request; normally this should
     *   be the latest version number from SPHttpClientBatchConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    SPHttpClientBatch.prototype.get = function (url, configuration, options) {
        var modifiedOptions = Object.assign({}, options);
        modifiedOptions.method = 'GET';
        return this.fetch(url, configuration, modifiedOptions);
    };
    /**
     * Calls fetch(), but sets the method to 'POST'.
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of this request; normally this should
     *   be the latest version number from SPHttpClientBatchConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    SPHttpClientBatch.prototype.post = function (url, configuration, options) {
        var modifiedOptions = Object.assign({}, options);
        modifiedOptions.method = 'POST';
        return this.fetch(url, configuration, modifiedOptions);
    };
    /**
     * Executes the batched queries that were queued using SPHttpClientBatch.fetch().
     */
    SPHttpClientBatch.prototype.execute = function () {
        var _this = this;
        this._correlationId = undefined;
        this._batchResponseBody = undefined;
        var batchBody = '\n';
        var batchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].newGuid(this._randomNumberGenerator);
        // In the loop below, we will build up a chain of promises that append
        // each request to the batch body, and then the "return" statement will
        // add the final processing to the chain.
        var chain = Promise.resolve();
        this._batchedRequests.forEach(function (batchedRequest) {
            chain = chain.then(function () {
                return batchedRequest.request.text();
            }).then(function (requestText) {
                var request = batchedRequest.request;
                batchBody += "--batch_" + batchGuid.toString() + "\n";
                batchBody += "Content-type: application/http\n"
                    + "Content-Transfer-Encoding: binary\n\n";
                // Example:
                // "POST https://example.com/_api/web HTTP/1.1"
                batchBody += request.method + " " + request.url + " HTTP/1.1\n";
                request.headers.forEach(function (value, name) {
                    batchBody += name + ": " + value + "\n";
                });
                batchBody += '\n';
                batchBody += requestText;
                batchBody += '\n\n';
            });
        });
        return chain
            .then(function () {
            // Close the batch
            // This is a workaround to add an extra line to prevent batch.post from failure.
            // @see https://github.com/SharePoint/sp-dev-docs/issues/599
            batchBody += "--batch_" + batchGuid + "--\n\n";
            return _this._digestCache.fetchDigest(_this._webUrl);
        })
            .then(function (digest) {
            // Start the $batch request
            var headers = new Headers();
            headers.append('Accept', 'application/json');
            headers.append('OData-Version', '4.0');
            headers.append('Content-Type', "multipart/mixed; boundary=batch_" + batchGuid);
            headers.append('Content-Length', batchBody.length.toString());
            headers.append('X-RequestDigest', digest);
            var request = new Request(_this._webUrl + '/_api/$batch', {
                method: 'POST',
                headers: headers,
                body: batchBody,
                credentials: 'same-origin',
                cache: 'no-cache'
            });
            var promise = _this._fetchProvider.fetch(request);
            return _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].handleAuthenticationErrors(promise, _this._webUrl, _this._digestCache);
        })
            .then(function (response) {
            _this._correlationId = response.headers.get('sprequestguid') || undefined;
            if (!response.ok) {
                throw new Error('SPHttpClientBatch: The batch request failed: ' + response.statusText);
            }
            return response.text();
        })
            .then(function (text) {
            _this._batchResponseBody = text;
            var responses = _this._parseResponsesFromBody(text);
            if (responses.length !== _this._batchedRequests.length) {
                throw new Error("SPHttpClientBatch: Expecting " + _this._batchedRequests.length + " responses");
            }
            for (var i = 0; i < _this._batchedRequests.length; ++i) {
                var request = _this._batchedRequests[i];
                request.resolvePromise(new _SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_3__["default"](responses[i]));
            }
            return _this;
        })
            .catch(function (executeError) {
            // If execute() itself rejects, then we still need to settle the individual fetch() promises.
            // Even if the "_api/$batch" promise resolved with a Response object, we cannot use that to
            // resolve the fetch() promises, since it was a separate conversation with possibly incompatible
            // encodings.  We don't have a proper status code for the fetch() operations.
            for (var _i = 0, _a = _this._batchedRequests; _i < _a.length; _i++) {
                var request = _a[_i];
                request.rejectPromiseIfNotResolved(executeError);
            }
            // Pass the batch error along to the caller's catch block
            return Promise.reject(executeError);
        });
    };
    /**
     * Returns the correlation id of the most recent batch request if execute() was able to get a response
     * from SharePoint.
     * @internal
     */
    SPHttpClientBatch.prototype.correlationId = function () {
        return this._correlationId;
    };
    /**
     * Returns the original batch response body if execute() was able to get a response and the respones
     * status is success.
     * @internal
     */
    SPHttpClientBatch.prototype.batchResponseBody = function () {
        return this._batchResponseBody;
    };
    SPHttpClientBatch.prototype._parseResponsesFromBody = function (text) {
        var responses = [];
        var header = '--batchresponse_';
        // Ex. "HTTP/1.1 500 Internal Server Error"
        var statusRegExp = new RegExp('^HTTP/[0-9.]+ +([0-9]+) +(.*)', 'i');
        var lines = text.split('\n');
        var parserState = 'batch';
        var batchStatus;
        var batchStatusText;
        for (var i = 0; i < lines.length; ++i) {
            var line = lines[i];
            switch (parserState) {
                case 'batch':
                    if (line.substr(0, header.length) === header) {
                        parserState = 'batchHeaders';
                    }
                    else {
                        if (line.trim() !== '') {
                            throw new Error('SPHttpClientBatch: Invalid response, line ' + i);
                        }
                    }
                    break;
                case 'batchHeaders':
                    if (line.trim() === '') {
                        parserState = 'status';
                    }
                    break;
                case 'status':
                    // Ex. "HTTP/1.1 500 Internal Server Error"
                    var parts = statusRegExp.exec(line);
                    if (!parts || parts && parts.length !== 3) {
                        throw new Error('SPHttpClientBatch: Invalid status, line ' + i);
                    }
                    // Ex. "500"
                    batchStatus = parseInt(parts[1], 10);
                    // Ex. "Internal Server Error"
                    batchStatusText = parts[2];
                    parserState = 'statusHeaders';
                    break;
                case 'statusHeaders':
                    if (line.trim() === '') {
                        parserState = 'body';
                    }
                    break;
                case 'body':
                    var responseBody = void 0;
                    // Response with status 204, 205 and 304 which are null body status cannot have body.
                    // Otherwise, use parsed line as response body.
                    if (_common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__["default"].isNullBodyStatusKillSwitchActivated() ||
                        (batchStatus !== 204 && // No content
                            batchStatus !== 205 && // Reset content
                            batchStatus !== 304 // Not modified
                        )) {
                        responseBody = line;
                    }
                    else if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__["default"].isFixEdgeNullBodyStatusKillSwitchActivated()) {
                        responseBody = null; // tslint:disable-line:no-null-keyword
                    }
                    else {
                        responseBody = undefined;
                    }
                    var response = void 0;
                    if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__["default"].isExposeCorrelationIdAndResponseBodyKillSwitchActivated()) {
                        var headers = new Headers();
                        headers.append('request-id', this._correlationId || '');
                        response = new Response(responseBody, { status: batchStatus, statusText: batchStatusText, headers: headers });
                    }
                    else {
                        response = new Response(responseBody, { status: batchStatus, statusText: batchStatusText });
                    }
                    responses.push(response);
                    parserState = 'batch';
                    break;
            }
        }
        if (parserState !== 'status') {
            throw new Error('SPHttpClientBatch: Unexpected end of input');
        }
        return responses;
    };
    /**
     * The standard predefined SPHttpClientBatchConfigurations objects for use with
     * the SPHttpClientBatch class.
     */
    SPHttpClientBatch.configurations = _SPHttpClientBatchConfiguration__WEBPACK_IMPORTED_MODULE_8__["predefinedConfigurations"];
    return SPHttpClientBatch;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientBatch);


/***/ }),

/***/ "5q05":
/*!******************************************!*\
  !*** ./lib/spHttpClient/SPHttpClient.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _DigestCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DigestCache */ "Qacf");
/* harmony import */ var _httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../httpClient/FetchProvider */ "UE6e");
/* harmony import */ var _SPHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SPHttpClientConfiguration */ "eGlh");
/* harmony import */ var _SPHttpClientBatch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SPHttpClientBatch */ "5emJ");
/* harmony import */ var _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SPHttpClientHelper */ "0s3q");
/* harmony import */ var _caching_CacheManager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../caching/CacheManager */ "pueB");
/* harmony import */ var _caching_CacheDataProviderService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../caching/CacheDataProviderService */ "Pac7");









/**
 * SPHttpClient is used to perform REST calls against SharePoint.  It adds default
 * headers, manages the digest needed for writes, and collects telemetry that
 * helps the service to monitor the performance of an application.
 *
 * @remarks
 * For communicating with other internet services, use the {@link HttpClient} class.
 *
 * @public
 * @sealed
 */
var SPHttpClient = /** @class */ (function () {
    function SPHttpClient(serviceScope) {
        var _this = this;
        this._serviceScope = serviceScope;
        this._serviceScope.whenFinished(function () {
            _this._digestCache = _this._serviceScope.consume(_DigestCache__WEBPACK_IMPORTED_MODULE_2__["default"].serviceKey);
            _this._parentSource = _this._serviceScope.consume(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_logSourceServiceKey"]);
            _this._fetchProvider = _this._serviceScope.consume(_httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_3__["fetchProviderServiceKey"]);
        });
    }
    /**
     * Use a heuristic to infer the base URL for authentication.
     *
     * @remarks
     * Attempts to infer the SPWeb URL associated with the provided REST URL, by looking
     * for common SharePoint path components such as "_api", "_layouts", or "_vit_bin".
     * This is necessary for operations such as the X-RequestDigest
     * and ODATA batching, which require POSTing to a separate REST endpoint
     * in order to complete a request.
     *
     * For example, if the requestUrl is "/sites/site/web/_api/service",
     * the returned URL would be "/sites/site/web".  Or if the requestUrl
     * is "http://example.com/_layouts/service", the returned URL would be
     * "http://example.com".
     *
     * If the URL cannot be determined, an exception is thrown.
     *
     * @param requestUrl - The URL for a SharePoint REST service
     * @returns the inferred SPWeb URL
     */
    SPHttpClient.getWebUrlFromRequestUrl = function (requestUrl) {
        return _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].getWebUrlFromRequestUrl(requestUrl);
    };
    SPHttpClient.prototype.fetch = function (url, configuration, options, cacheConfiguration) {
        var _this = this;
        // Default fetch behavior - No caching
        // If no caching options are provided, or If Cache Provider is not present continue to API call
        if (!cacheConfiguration || !this._cacheDataProvider) {
            return this._fetch(url, configuration, options);
        }
        // Get the cache Key
        // tslint:disable-next-line:no-any
        var cacheKey = this._cacheDataProvider.getCacheKey(url, configuration, options);
        // Fetch data and Cache according to the cacheConfiguration
        return _caching_CacheManager__WEBPACK_IMPORTED_MODULE_7__["CacheManager"].fetchAndCache(cacheKey, this._cacheDataProvider, cacheConfiguration, function () { return _this.fetch(url, configuration, options); });
    };
    /**
     * Calls fetch(), but sets the method to "GET".
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of SPHttpClient; normally this should
     *   be the latest version number from SPHttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    SPHttpClient.prototype.get = function (url, configuration, options) {
        return this._fetch(url, configuration, _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].overrideHttpMethod(options, 'GET'));
    };
    /**
     * Calls fetch(), but sets the method to "POST".
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of SPHttpClient; normally this should
     *   be the latest version number from SPHttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    SPHttpClient.prototype.post = function (url, configuration, options) {
        return this._fetch(url, configuration, _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].overrideHttpMethod(options, 'POST'));
    };
    /**
     * Begins an ODATA batch, which allows multiple REST queries to be bundled into
     * a single web request.
     *
     * @returns An {@link SPHttpClientBatch} object used to manage the batch operation.
     *
     * @beta
     */
    SPHttpClient.prototype.beginBatch = function (batchCreationOptions) {
        return new _SPHttpClientBatch__WEBPACK_IMPORTED_MODULE_5__["default"](this._serviceScope, batchCreationOptions);
    };
    SPHttpClient.prototype._fetch = function (url, configuration, options) {
        return _SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].fetchCore(url, configuration, options, this._serviceScope, this._digestCache, this._fetchProvider, this._logSourceId);
    };
    Object.defineProperty(SPHttpClient.prototype, "_cacheDataProvider", {
        /**
         * Gets the cache data provider
         */
        get: function () {
            if (!this._cacheProvider) {
                this._cacheProvider = this._serviceScope.consume(_caching_CacheDataProviderService__WEBPACK_IMPORTED_MODULE_8__["cacheDataProviderServiceKey"])._provider;
            }
            return this._cacheProvider;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPHttpClient.prototype, "_logSourceId", {
        get: function () {
            if (this._parentSource.isEmpty()) {
                return SPHttpClient._logSource.id;
            }
            return this._parentSource.id;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * The standard predefined SPHttpClientConfiguration objects for use with
     * the SPHttpClient class.
     */
    SPHttpClient.configurations = _SPHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_4__["predefinedConfigurations"];
    /**
     * The service key for SPHttpClient.
     */
    SPHttpClient.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["ServiceKey"].create('sp-http:SPHttpClient', SPHttpClient);
    SPHttpClient._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('spHttpClient');
    return SPHttpClient;
}());
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClient);


/***/ }),

/***/ "81oh":
/*!********************************************!*\
  !*** ./lib/aadHttpClient/AadHttpClient.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../httpClient/FetchProvider */ "UE6e");
/* harmony import */ var _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientResponse */ "0v/C");
/* harmony import */ var _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../oauthTokenProvider/AadTokenProviders */ "KkUw");
/* harmony import */ var _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../httpClient/HttpClientHelper */ "8Y7G");
/* harmony import */ var _AadHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AadHttpClientConfiguration */ "BCL6");






/**
 * AadHttpClient is used to perform REST calls against an Azure AD Application.
 *
 * @remarks
 * For communicating with SharePoint, use the {@link SPHttpClient} class instead.
 * For communicating with Microsoft Graph, use the {@link MSGraphClient} class.
 *
 * @public
 * @sealed
 */
var AadHttpClient = /** @class */ (function () {
    /**
     *
     * @param serviceScope - The service scope is needed to retrieve some of the class's internal components.
     * @param resourceUrl - The resource for which the token should be obtained.
     * @param options - Configuration options for the request to get an access token.
     *
     */
    function AadHttpClient(serviceScope, resourceEndpoint, options) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(resourceEndpoint, 'resourceUrl');
        this._resourceUrl = resourceEndpoint;
        this._serviceScope = serviceScope;
        this._aadTokenProvider =
            options && options.tokenProvider ||
                _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_3__["default"].configurable;
        this._aadTokenConfiguration = options && options.configuration;
        this._useCachedToken = options && options.useCachedToken !== undefined ? options.useCachedToken : true;
        serviceScope.whenFinished(function () {
            _this._fetchProvider = serviceScope.consume(_httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_1__["fetchProviderServiceKey"]);
        });
    }
    /**
     * Performs a REST service call.
     *
     * @remarks
     * Although the AadHttpClient subclass adds additional enhancements, the parameters and semantics
     * for HttpClient.fetch() are essentially the same as the WHATWG API standard that is documented here:
     * https://fetch.spec.whatwg.org/
     *
     * @param url - The endpoint URL that fetch will be called on.
     * @param configuration - Determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations.
     * @param options - Additional options that affect the request.
     * @returns A promise that will return the result.
     */
    AadHttpClient.prototype.fetch = function (url, configuration, options) {
        var _this = this;
        return this._fetch(url, configuration, options, this._useCachedToken)
            .then(function (originalResponse) {
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(AadHttpClient.authRetryKillSwitchGuid, '05/13/19', 'Get a fresh token for authorization failures') &&
                originalResponse.status === 403) {
                return _this._fetch(url, configuration, options, false);
            }
            else {
                return originalResponse;
            }
        })
            .then(function (value) { return new _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__["default"](value); });
    };
    /**
     * Calls fetch(), but sets the method to "GET".
     *
     * @param url - The endpoint URL that fetch will be called on.
     * @param configuration - Determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations.
     * @param options - Additional options that affect the request.
     * @returns A promise that will return the result.
     */
    AadHttpClient.prototype.get = function (url, configuration, options) {
        return this.fetch(url, configuration, _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].overrideHttpMethod(options, 'GET'));
    };
    /**
     * Calls fetch(), but sets the method to "POST".
     *
     * @param url - The endpoint URL that fetch will be called on.
     * @param configuration - Determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations.
     * @param options - Additional options that affect the request.
     * @returns A promise that will return the result.
     */
    AadHttpClient.prototype.post = function (url, configuration, options) {
        return this.fetch(url, configuration, _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].overrideHttpMethod(options, 'POST'));
    };
    AadHttpClient.prototype._fetch = function (url, configuration, options, useCachedToken) {
        var _this = this;
        // We can only use a custom configuration for the original AADTokenProvider right now.
        // We don't want to support this customization long term.
        var tokenFetchPromise;
        if (this._aadTokenConfiguration && this._aadTokenProvider._getTokenInternal) {
            tokenFetchPromise = this._aadTokenProvider._getTokenInternal(this._resourceUrl, this._aadTokenConfiguration, useCachedToken);
        }
        else {
            tokenFetchPromise = this._aadTokenProvider.getToken(this._resourceUrl, useCachedToken);
        }
        return tokenFetchPromise
            .then(function (token) {
            // Constructing a Headers object with undefined throws an exception in IE/Edge
            options.headers = options.headers ? new Headers(options.headers) : new Headers();
            options.headers.append('Authorization', 'Bearer ' + token);
            return _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].fetchCore(configuration, new Request(url, options), _this._serviceScope, _this._fetchProvider, AadHttpClient._className);
        });
    };
    /**
     * The standard predefined AadHttpClientConfiguration objects for use with
     * the AadHttpClient class.
     */
    AadHttpClient.configurations = _AadHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_5__["predefinedConfigurations"];
    AadHttpClient.authRetryKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('0cf10fc5-9dba-4929-9644-68aa50693e25');
    AadHttpClient._className = 'AadHttpClient';
    return AadHttpClient;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadHttpClient);


/***/ }),

/***/ "8Y7G":
/*!********************************************!*\
  !*** ./lib/httpClient/HttpClientHelper.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../graphHttpClient/GraphHttpClientContext */ "iDX0");




// Killswitch Guid to disable Adding "SdkVersion" header to the Request.
var SDKVERSION_HEADER_KILLSWITCH = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('7eade7ed-629b-4db2-8837-1fde226c59ff');
/**
 * Private - this class contains some internal code shared between HttpClient
 * and SPHttpClient.
 */
var HttpClientHelper = /** @class */ (function () {
    function HttpClientHelper() {
    }
    /**
     * Clones the original options and sets the method to the passed in method name.
     */
    HttpClientHelper.overrideHttpMethod = function (options, httpRequestMethod) {
        var modifiedOptions = Object.assign({}, options);
        modifiedOptions.method = httpRequestMethod;
        return modifiedOptions;
    };
    /**
     * All network requests are routed through this method, which calls the
     * underlying IFetchProvider.fetch().
     */
    HttpClientHelper.fetchCore = function (configuration, request, serviceScope, fetchProvider, logSource) {
        var loggingSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create(logSource);
        try {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(loggingSource, request.method + " " + request.url);
        }
        catch (error) {
            // Ignore potential Log errors
        }
        var clientManifestData = serviceScope.consume(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_ClientManifestData"].serviceKey);
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"](HttpClientHelper.HTTP_CLIENT_CLASS_NAME_FETCH);
        if (clientManifestData.manifest) {
            qosMonitor.extraData = {
                'alias': clientManifestData.manifest.alias,
                'componentId': clientManifestData.manifest.id
            };
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(SDKVERSION_HEADER_KILLSWITCH, '10/22/2019', 'RemoveSdkVersionHeader')) {
                // We would like to add the 'SdkVersion' header to all outgoing network requests.
                // We are adding 'SdkVersion' header for Graph and Sharepoint REST calls only.
                // This is because not all services support arbitrary headers.
                // See more here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers
                try {
                    var graphContext = serviceScope.consume(_graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_2__["default"].serviceKey);
                    var spUrlOrigin = new URL(graphContext.getWebAbsoluteUrl()).origin;
                    var msGraphUrlOrigin = new URL(graphContext.getGraphEndpointUrl()).origin;
                    var requestUrlOrigin = new URL(request.url).origin;
                    if (requestUrlOrigin === spUrlOrigin || requestUrlOrigin === msGraphUrlOrigin) {
                        request.headers.append('Access-Control-Request-Headers', 'SdkVersion');
                        request.headers.append('SdkVersion', 'SPFx/' + clientManifestData.manifest.alias +
                            '/' + clientManifestData.manifest.id);
                    }
                }
                catch (error) {
                    _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logVerbose(loggingSource, 'SdkVersionError: ' + error);
                }
            }
        }
        return fetchProvider.fetch(request)
            .then(function (response) {
            if (response.status >= 200 && response.status <= 299) {
                qosMonitor.writeSuccess({ source: logSource });
            }
            else if (response.status >= 300 && response.status <= 399) {
                qosMonitor.writeExpectedFailure('Redirection', undefined, { source: logSource, responseStatus: response.status });
            }
            else if (response.status >= 400 && response.status <= 499) {
                qosMonitor.writeExpectedFailure('ClientError', undefined, { source: logSource, responseStatus: response.status });
            }
            else if (response.status >= 500 && response.status <= 599) {
                qosMonitor.writeExpectedFailure('ServerError', undefined, { source: logSource, responseStatus: response.status });
            }
            else {
                qosMonitor.writeUnexpectedFailure('Unknown', undefined, { source: logSource, responseStatus: response.status });
            }
            return response;
        }).catch(function (error) {
            qosMonitor.writeUnexpectedFailure('FetchError', error, { source: logSource });
            throw error;
        });
    };
    HttpClientHelper.HTTP_CLIENT_CLASS_NAME_FETCH = 'HttpClientHelper.Fetch';
    return HttpClientHelper;
}());
/* harmony default export */ __webpack_exports__["default"] = (HttpClientHelper);


/***/ }),

/***/ "9UXQ":
/*!************************************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientBatchConfiguration.js ***!
  \************************************************************/
/*! exports provided: default, predefinedConfigurations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "predefinedConfigurations", function() { return predefinedConfigurations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPHttpClientCommonConfiguration */ "ea2N");
/* harmony import */ var _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClient */ "LJZb");



/**
 * Configuration for SPHttpClientBatch.
 *
 * @remarks
 * The SPHttpClientBatchConfiguration object provides a set of switches for enabling/disabling
 * various features of the SPHttpClientBatch class.  Normally these switches are set
 * (e.g. when calling SPHttpClientBatch.fetch()) by providing one of the predefined defaults
 * from SPHttpClientBatchConfigurations, however switches can also be changed via the
 * SPHttpClientBatchConfiguration.overrideWith() method.
 *
 * @beta
 */
var SPHttpClientBatchConfiguration = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SPHttpClientBatchConfiguration, _super);
    /**
     * Constructs a new instance of SPHttpClientBatchConfiguration with the specified flags.
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function SPHttpClientBatchConfiguration(flags, overrideFlags) {
        return _super.call(this, flags, overrideFlags) || this;
    }
    /**
     * @override
     */
    SPHttpClientBatchConfiguration.prototype.overrideWith = function (sourceFlags) {
        return new SPHttpClientBatchConfiguration(this.flags, sourceFlags);
    };
    /**
     * @override
     */
    SPHttpClientBatchConfiguration.prototype.initializeFlags = function () {
        _super.prototype.initializeFlags.call(this);
    };
    return SPHttpClientBatchConfiguration;
}(_SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_1__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientBatchConfiguration);
var predefinedConfigurations = {
    v1: new SPHttpClientBatchConfiguration(_httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_2__["default"].configurations.v1, {
        // ISPHttpClientCommonConfiguration:
        jsonRequest: true,
        jsonResponse: true
        // ISPHttpClientBatchConfiguration:
        // (none)
    })
};


/***/ }),

/***/ "BCL6":
/*!*********************************************************!*\
  !*** ./lib/aadHttpClient/AadHttpClientConfiguration.js ***!
  \*********************************************************/
/*! exports provided: default, predefinedConfigurations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "predefinedConfigurations", function() { return predefinedConfigurations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../httpClient/HttpClient */ "LJZb");
/* harmony import */ var _httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientConfiguration */ "zgJL");



/**
 * Configuration for HttpClient.
 *
 * @remarks
 * The HttpClientConfiguration object provides a set of switches for enabling/disabling
 * various features of the HttpClient class.  Normally these switches are set
 * (e.g. when calling HttpClient.fetch()) by providing one of the predefined defaults
 * from HttpClientConfigurations, however switches can also be changed via the
 * HttpClientConfiguration.overrideWith() method.
 *
 * @public
 */
var AadHttpClientConfiguration = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AadHttpClientConfiguration, _super);
    /**
     * Constructs a new instance of HttpClientConfiguration with the specified flags.
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function AadHttpClientConfiguration(flags, overrideFlags) {
        return _super.call(this, flags, overrideFlags) || this;
    }
    /**
     * @override
     */
    AadHttpClientConfiguration.prototype.overrideWith = function (sourceFlags) {
        return new AadHttpClientConfiguration(this.flags, sourceFlags);
    };
    return AadHttpClientConfiguration;
}(_httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (AadHttpClientConfiguration);
var predefinedConfigurations = {
    v1: new AadHttpClientConfiguration(_httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_1__["default"].configurations.v1)
};


/***/ }),

/***/ "BNrv":
/*!****************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/libraries/sp-client-shared/lib/tokenUtility/OAuthUtility.js ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ "uojq");
/* harmony import */ var _OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OAuthUtilityError */ "nOSL");


/**
 * The TokenUtility class facilitates getting a OAuth token for a given resource.
 * It handles caching and token expiration in a way that is transparent to the library user.
 *
 * @alpha
 */
var OAuthUtility = /** @class */ (function () {
    function OAuthUtility(context) {
        var _this = this;
        this._context = context;
        this._dispose = this._dispose.bind(this);
        window.addEventListener('unload', this._dispose);
        var loadedName = '_spMSBTLoaded';
        window[loadedName] = function () {
            _this._receiveMediaServiceFlushedToken();
        };
    }
    OAuthUtility._getCorrelationId = function (response) {
        return response.headers.get('sprequestguid');
    };
    // Perhaps for PowerApps the error wasn't nested, but for PowerBI it certainly is
    OAuthUtility._extractRealError = function (errorResponse) {
        var isNested = errorResponse.hasOwnProperty('error');
        return isNested ? errorResponse.error : errorResponse;
    };
    /**
     * Fetches the OAuth token for a resource if the user that's currently logged in has
     * access to that resource.
     *
     * If the promise returned by this method rejects, there is no point in retrying the same call.
     * If the response from the server signals that the request should be retried this function will do this by itself.
     *
     * An example of a resource would be https://sdfpilot.outlook.com
     *
     * @param resource - the resource for which the token should be obtained
     * @returns A promise that will be fullfiled with the token or that will reject
     *          with an instance of TokenUtilityError
     */
    OAuthUtility.prototype.getOAuthToken = function (resource, webUrl) {
        var _this = this;
        this._receiveMediaServiceFlushedToken();
        var cachedData = this._getCachedTokenData(resource);
        if (cachedData && !this._isExpiring(cachedData)) {
            return Promise.resolve({
                token: cachedData.accessToken,
                isGuest: false,
                expirationTimeMs: cachedData.expiresOn,
                _correlationId: cachedData.correlationId
            });
        }
        return this._retriableFetchWithDigest(resource, _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].retries, webUrl)
            .then(function (responseData) {
            _this._storeTokenData(resource, responseData);
            return {
                token: responseData.accessToken,
                isGuest: false,
                expirationTimeMs: responseData.expiresOn,
                _correlationId: responseData.correlationId
            };
        });
    };
    /**
     * Clears the token from a given resource from the internal cache. If there is no token
     * cached for the resource the method does nothing.
     *
     * @param resource - resource for which the token should be cleared from the cache
     */
    OAuthUtility.prototype.clearCachedToken = function (resource) {
        var key = this._getCacheKey(resource);
        window.sessionStorage.removeItem(key);
        var index = this._resourceKeys.indexOf(key);
        if (!isNaN(index) && index > -1) {
            this._resourceKeys.splice(index);
        }
    };
    Object.defineProperty(OAuthUtility.prototype, "_resourceKeys", {
        get: function () {
            if (!this._keysToDispose) {
                this._keysToDispose = new Array();
            }
            return this._keysToDispose;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param resource - the resource for which the request is done
     * @param retriesLeft - number of retries to be done in case of a retriable error
     * @returns A promise that fulfills to the server response or rejects with an instance of TokenUtilityError
     */
    OAuthUtility.prototype._retriableFetchWithDigest = function (resource, retriesLeft, webUrl) {
        var _this = this;
        var monitor = this._context.qosMonitor();
        var correlationIdExtraData;
        return this._context.fetchWithDigest(this._buildTokenRequest(resource, webUrl))
            .then(function (response) {
            correlationIdExtraData = { CorrelationId: OAuthUtility._getCorrelationId(response) };
            if (response.status !== 200) {
                /**
                 * If the request code is not 400 this means that the error is not raised by the rest API.
                 * In this case, the error is passed directly to the user.
                 *
                 * @TODO #225093
                 * Throttling response will have code 429. This also needs to be handled separately
                 */
                _this._context.logger.logError('fetchWithDigest failed. Server responded with ' + response.statusText);
                var error = new _OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["default"](_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["OAuthUtilityErrorType"].unknownError, {
                    httpResponseStatus: response.status,
                    message: response.statusText,
                    correlationId: OAuthUtility._getCorrelationId(response)
                });
                if (response.status !== 400) {
                    monitor.writeUnexpectedFailure('UnknownError', error, correlationIdExtraData);
                    return Promise.reject(error);
                }
                return response.json().then(function (mixedErrorResponse) {
                    var errorResponse = OAuthUtility._extractRealError(mixedErrorResponse);
                    var errorCode = _this._getErrorCodeFromResponseCode(errorResponse);
                    if (!_this._isRetriableError(errorCode) || (retriesLeft === 0)) {
                        var oAuthError = _this._buildErrorFromResponse(errorResponse);
                        monitor.writeUnexpectedFailure('SharepointServerError', oAuthError, correlationIdExtraData);
                        return Promise.reject(oAuthError);
                    }
                    _this._context.logger.logError('fetchWithDigest failed. Retrying. Retries left: ' + retriesLeft);
                    return _this._retriableFetchWithDigest(resource, retriesLeft - 1, webUrl);
                });
            }
            return _this._instrumentedParseResponseData(response, monitor, correlationIdExtraData);
        });
    };
    OAuthUtility.prototype._getCachedTokenData = function (resource) {
        return JSON.parse(window.sessionStorage.getItem(this._getCacheKey(resource)));
    };
    OAuthUtility.prototype._storeTokenData = function (resource, data) {
        window.sessionStorage.setItem(this._getCacheKey(resource), JSON.stringify(data));
    };
    OAuthUtility.prototype._getCacheKey = function (resource) {
        var key = ['sp-client-shared', _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].npmPackageVersion, 'OAuthUtility', resource].join(';');
        var index = this._resourceKeys.indexOf(key);
        if (index === -1) {
            this._resourceKeys.push(key);
        }
        return key;
    };
    OAuthUtility.prototype._isExpiring = function (tokenRequestData) {
        return (tokenRequestData.expiresOn - Date.now() / 1000) < _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].aboutToExpireIntervalSeconds;
    };
    OAuthUtility.prototype._isRetriableError = function (errorCode) {
        return _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].retriableErrorCodes.indexOf(errorCode) !== -1;
    };
    OAuthUtility.prototype._buildTokenRequest = function (resource, webUrl) {
        var requestHeaders = new Headers();
        requestHeaders.append('Content-Type', 'application/json; charset=utf-8');
        requestHeaders.append('Odata-Version', '4.0');
        requestHeaders.append('Accept', 'application/json;odata.metadata=minimal');
        var request = {
            method: 'POST',
            headers: requestHeaders,
            body: JSON.stringify(this._buildRequestBody(resource))
        };
        var webUrlNoEndingSlash = webUrl;
        if (webUrlNoEndingSlash && webUrlNoEndingSlash.lastIndexOf('/') === webUrlNoEndingSlash.length - 1) {
            webUrlNoEndingSlash = webUrlNoEndingSlash.substr(0, webUrlNoEndingSlash.length - 1);
        }
        return new Request(webUrlNoEndingSlash + _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].apiUrl, request);
    };
    OAuthUtility.prototype._buildRequestBody = function (resource) {
        return {
            resource: resource
        };
    };
    /**
     * The returned error contains the same message as the server error and a numeric error code
     * corresponding to the error code sent by the server
     *
     * @param serverErrorResponse - The error response object as it is sent by the server
     * @returns An instance of TokenUtilityError
     **/
    OAuthUtility.prototype._buildErrorFromResponse = function (serverErrorResponse) {
        var errorCode = this._getErrorCodeFromResponseCode(serverErrorResponse);
        if (errorCode === undefined) {
            return new _OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["default"](_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["OAuthUtilityErrorType"].malformedResponseBody, {
                httpResponseStatus: 400,
                message: _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].unexpectedErrorCodeFormat,
                correlationId: serverErrorResponse.correlationId
            });
        }
        // TODO #289057: The error response format is changing. We're handling both current and new format until server
        // side changes are implemented to return the new format.
        var message;
        var cultureName;
        if (serverErrorResponse.message) {
            if (typeof serverErrorResponse.message === 'string') {
                // TODO #289057: Current format to be removed
                message = serverErrorResponse.message;
            }
            else {
                // New format to be implemented
                message = serverErrorResponse.message.value;
                cultureName = serverErrorResponse.message.lang;
            }
        }
        var redirectUrlKey = 'error.redirectUrl';
        return new _OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["default"](_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["OAuthUtilityErrorType"].serverError, {
            httpResponseStatus: 400,
            message: message,
            cultureName: cultureName,
            serverErrorCode: errorCode,
            correlationId: serverErrorResponse.correlationId,
            // To support both OData 3 & 4, try @ prefix as fallback
            redirectUrl: serverErrorResponse[redirectUrlKey] || serverErrorResponse["@" + redirectUrlKey]
        });
    };
    /**
     * The format is "\<errorCode\>, \<exception class name\>" (TODO #289057) OR "\<errorCode\>"
     *
     * @param responseError - The response sent by the server
     */
    OAuthUtility.prototype._getErrorCodeFromResponseCode = function (serverErrorResponse) {
        var responseErrorCode = serverErrorResponse.code;
        // New format has code in the corresponding property
        var errorCode = Number(responseErrorCode);
        if (isNaN(errorCode) && typeof serverErrorResponse.message === 'string') {
            // TODO #289057: Previous to be removed
            var firstCommaIndex = responseErrorCode.indexOf(',');
            if (firstCommaIndex !== -1) {
                errorCode = Number(responseErrorCode.substr(0, firstCommaIndex));
            }
        }
        return errorCode;
    };
    OAuthUtility.prototype._instrumentedParseResponseData = function (response, monitor, correlationIdExtraData) {
        try {
            return response.json().then(function (responseBody) {
                monitor.writeSuccess(correlationIdExtraData);
                return {
                    accessToken: responseBody.access_token,
                    correlationId: OAuthUtility._getCorrelationId(response),
                    expiresOn: Number(responseBody.expires_on),
                    notBefore: Number(responseBody.not_before),
                    resource: responseBody.resource,
                    tokenType: responseBody.token_type
                };
            });
        }
        catch (error) {
            monitor.writeUnexpectedFailure('ResponseParseError', error, correlationIdExtraData);
            return Promise.reject(new _OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["default"](_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["OAuthUtilityErrorType"].malformedResponseBody, {
                httpResponseStatus: 200,
                message: _Constants__WEBPACK_IMPORTED_MODULE_0__["default"].unexpectedTokenMessageFormat,
                correlationId: OAuthUtility._getCorrelationId(response)
            }));
        }
    };
    OAuthUtility.prototype._dispose = function (ev) {
        window.removeEventListener('unload', this._dispose);
        for (var _i = 0, _a = this._resourceKeys; _i < _a.length; _i++) {
            var key = _a[_i];
            window.sessionStorage.removeItem(key);
        }
    };
    /**
     * Receive media service oauth token flushed in page response
     * Reference: SPClientSideMediaServiceTokenPrefetchDataGenerator
     */
    OAuthUtility.prototype._receiveMediaServiceFlushedToken = function () {
        var tokenKey = '_spMSBT';
        if (window[tokenKey]) {
            var responseData = {
                tokenType: window[tokenKey].TokenType,
                expiresOn: window[tokenKey].ExpiresOn,
                notBefore: undefined,
                resource: window[tokenKey].Resource,
                accessToken: window[tokenKey].AccessToken
            };
            this._storeTokenData(responseData.resource, responseData);
            window[tokenKey] = undefined;
        }
    };
    return OAuthUtility;
}());
/* harmony default export */ __webpack_exports__["default"] = (OAuthUtility);


/***/ }),

/***/ "BkXy":
/*!********************************************************!*\
  !*** ./lib/graphHttpClient/GraphHttpClientResponse.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientResponse */ "0v/C");



/**
 * The Response subclass returned by methods such as GraphHttpClient.fetch().
 *
 * @remarks
 * This is a placeholder.  In the future, additional GraphHttpClient-specific functionality
 * may be added to this class.
 *
 * @deprecated The GraphHttpClient class has been superceded by the MSGraphClient class.
 * @internal
 * @sealed
 */
var GraphHttpClientResponse = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GraphHttpClientResponse, _super);
    function GraphHttpClientResponse(response) {
        return _super.call(this, response) || this;
    }
    /**
     * @override
     */
    GraphHttpClientResponse.prototype.clone = function () {
        return new GraphHttpClientResponse(this.nativeResponse.clone());
    };
    Object.defineProperty(GraphHttpClientResponse.prototype, "correlationId", {
        /**
         * Returns the Graph API correlation ID.
         *
         * @returns the correlation ID, or undefined if the "request-id" header was not found.
         */
        get: function () {
            if (!this._correlationId) {
                this._correlationId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].tryParse(this.headers.get('request-id'));
            }
            return this._correlationId;
        },
        enumerable: true,
        configurable: true
    });
    return GraphHttpClientResponse;
}(_httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (GraphHttpClientResponse);


/***/ }),

/***/ "E9FO":
/*!************************************************!*\
  !*** ./lib/graphHttpClient/GraphHttpClient.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _oauthTokenProvider_OAuthTokenProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../oauthTokenProvider/OAuthTokenProvider */ "21FS");
/* harmony import */ var _httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../httpClient/FetchProvider */ "UE6e");
/* harmony import */ var _GraphHttpClientResponse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GraphHttpClientResponse */ "BkXy");
/* harmony import */ var _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../httpClient/HttpClientHelper */ "8Y7G");
/* harmony import */ var _spHttpClient_SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../spHttpClient/SPHttpClientHelper */ "0s3q");
/* harmony import */ var _GraphHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./GraphHttpClientConfiguration */ "kyCB");
/* harmony import */ var _GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./GraphHttpClientContext */ "iDX0");









/**
 * GraphHttpClient is used to perform REST calls against Microsoft Graph. It adds default
 * headers and collects telemetry that helps the service to monitor the performance of an application.
 * https://developer.microsoft.com/en-us/graph/
 *
 * @remarks
 * For communicating with SharePoint, use the {@link SPHttpClient} class instead.
 * For communicating with other internet services, use the {@link HttpClient} class instead.
 *
 * @internal
 * @deprecated The GraphHttpClient class has been superseded by the MSGraphClient class.
 * @sealed
 */
var GraphHttpClient = /** @class */ (function () {
    function GraphHttpClient(serviceScope) {
        var _this = this;
        this._serviceScope = serviceScope;
        this._serviceScope.whenFinished(function () {
            _this._tokenProvider = serviceScope.consume(_oauthTokenProvider_OAuthTokenProvider__WEBPACK_IMPORTED_MODULE_2__["default"].serviceKey);
            _this._parentSource = serviceScope.consume(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_logSourceServiceKey"]);
            _this._graphContext = serviceScope.consume(_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_8__["default"].serviceKey);
            _this._fetchProvider = serviceScope.consume(_httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_3__["fetchProviderServiceKey"]);
            _this._clientManifestData = _this._serviceScope.consume(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_ClientManifestData"].serviceKey);
        });
    }
    /**
     * Perform a REST service call.
     *
     * @remarks
     * Generally, the parameters and semantics for HttpClient.fetch() are essentially
     * the same as the WHATWG API standard that is documented here:
     * https://fetch.spec.whatwg.org/
     *
     * The GraphHttpClient subclass adds some additional behaviors that are convenient when
     * working with SharePoint ODATA API's (which can be avoided by using
     * HttpClient instead):
     * - Default "Accept" and "Content-Type" headers are added if not explicitly specified.
     *
     * @param url - The url string should be relative to the graph server.
     *  Good: 'v1.0/me/events'
     *  Bad: '/v1.0/me/events', 'https://graph.microsoft.com/v1.0/me/events'
     * @param configuration - determines the default behavior of GraphHttpClient; normally this should
     *   be the latest version number from GraphHttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns a promise that will return the result
     */
    GraphHttpClient.prototype.fetch = function (url, configuration, options) {
        var _this = this;
        this._validateGraphRelativeUrl(url);
        return this._getOAuthToken().then(function () {
            if (!options) {
                options = {};
            }
            var modifiedOptions = Object.assign({}, options);
            var defaultHeaders = new Headers();
            defaultHeaders.append('Accept', 'application/json');
            defaultHeaders.append('Authorization', 'Bearer ' + _this._token);
            defaultHeaders.append('Content-Type', 'application/json; charset=utf-8');
            var userHeaders = _spHttpClient_SPHttpClientHelper__WEBPACK_IMPORTED_MODULE_6__["default"].cloneHeaders(options);
            modifiedOptions.headers = _this._mergeUserHeaders(defaultHeaders, userHeaders);
            return _this._fetchWithInstrumentation(configuration, new Request(_this._graphContext.getGraphEndpointUrl() + '/' + url, modifiedOptions)).then(function (response) {
                return new _GraphHttpClientResponse__WEBPACK_IMPORTED_MODULE_4__["default"](response);
            });
        });
    };
    /**
     * Calls fetch(), but sets the method to "GET".
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of GraphHttpClient; normally this should
     *   be the latest version number from GraphHttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns a promise that will return the result
     */
    GraphHttpClient.prototype.get = function (url, configuration, options) {
        return this.fetch(url, configuration, _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_5__["default"].overrideHttpMethod(options, 'GET'));
    };
    /**
     * Calls fetch(), but sets the method to "POST".
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of GraphHttpClient; normally this should
     *   be the latest version number from GraphHttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns a promise that will return the result
     */
    GraphHttpClient.prototype.post = function (url, configuration, options) {
        return this.fetch(url, configuration, _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_5__["default"].overrideHttpMethod(options, 'POST'));
    };
    GraphHttpClient.prototype._fetchWithInstrumentation = function (configuration, request) {
        return _httpClient_HttpClientHelper__WEBPACK_IMPORTED_MODULE_5__["default"].fetchCore(configuration, request, this._serviceScope, this._fetchProvider, GraphHttpClient._className).then(function (response) {
            return response;
        }).catch(function (error) {
            return Promise.reject(error);
        });
    };
    GraphHttpClient.prototype._getOAuthToken = function () {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('GraphHttpClient.FetchGraphToken');
        if (this._clientManifestData.manifest) {
            qosMonitor.extraData = {
                'alias': this._clientManifestData.manifest.alias,
                'componentId': this._clientManifestData.manifest.id
            };
        }
        // VSO 331685 SharePoint/Graph should tell the GraphHttpClient where to fetch the Graph token from
        return this._tokenProvider.getOAuthToken(this._graphContext.getGraphEndpointUrl(), this._graphContext.getWebServerRelativeUrl()).then(function (response) {
            _this._writeQosMonitorUpdate(response, qosMonitor, 'FetchGraphToken');
            _this._token = response.token;
        })
            .catch(function (error) {
            qosMonitor.writeUnexpectedFailure('FetchGraphToken', error, { source: _this._logSourceId });
            return Promise.reject(error);
        });
    };
    Object.defineProperty(GraphHttpClient.prototype, "_logSourceId", {
        get: function () {
            if (this._parentSource.isEmpty()) {
                return GraphHttpClient._logSource.id;
            }
            return this._parentSource.id;
        },
        enumerable: true,
        configurable: true
    });
    GraphHttpClient.prototype._mergeUserHeaders = function (defaultHeaders, userHeaders) {
        userHeaders.forEach(function (value, name) {
            defaultHeaders.set(name, value); // note name/value are reversed
        });
        return defaultHeaders;
    };
    GraphHttpClient.prototype._writeQosMonitorUpdate = function (response, qosMonitor, operation) {
        if (response.status >= 200 && response.status <= 299) {
            qosMonitor.writeSuccess({ source: this._logSourceId });
        }
        else if (response.status >= 300 && response.status <= 499) {
            qosMonitor.writeExpectedFailure(operation, undefined, { source: this._logSourceId, responseStatus: response.status });
        }
        else {
            qosMonitor.writeUnexpectedFailure(operation, undefined, { source: this._logSourceId, responseStatus: response.status });
        }
    };
    /**
     * This function verifies that
     */
    GraphHttpClient.prototype._validateGraphRelativeUrl = function (url) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(url, 'url');
        if (url.charAt(0) === '/') {
            throw new Error('GraphHttpClient requests cannot begin with a / character');
        }
        if (url.indexOf('http://', 0) === 0) {
            throw new Error('GraphHttpClient requests cannot specify a different graph server with the url.');
        }
        if (url.indexOf('https://', 0) === 0) {
            throw new Error('GraphHttpClient requests cannot specify a different graph server with the url.');
        }
    };
    /**
     * The standard predefined GraphHttpClientConfiguration objects for use with
     * the GraphHttpClient class.
     */
    GraphHttpClient.configurations = _GraphHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_7__["predefinedConfigurations"];
    /**
     * The service key for GraphHttpClient.
     */
    GraphHttpClient.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["ServiceKey"].create('sp-http:GraphHttpClient', GraphHttpClient);
    GraphHttpClient._className = 'GraphHttpClient';
    GraphHttpClient._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('graphHttpClient');
    return GraphHttpClient;
}());
/* harmony default export */ __webpack_exports__["default"] = (GraphHttpClient);


/***/ }),

/***/ "GSEB":
/*!******************************************!*\
  !*** ./lib/spHttpClient/ODataVersion.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Represents supported version of the "OData-Version" header, which is part
 * of the Open Data Protocol standard.
 *
 * @public
 */
var ODataVersion = /** @class */ (function () {
    function ODataVersion(versionString) {
        this._versionString = versionString;
    }
    /**
     * Attempt to parse the "OData-Version" header.
     *
     * @remarks
     * If the "OData-Version" header is present, this returns the
     * corresponding ODataVersion constant.  An error is thrown if
     * the version number is not supported.  If the header is missing,
     * then undefined is returned.
     */
    ODataVersion.tryParseFromHeaders = function (headers) {
        var oDataVersion;
        headers.forEach(function (value, name) {
            if (name.toUpperCase() === 'ODATA-VERSION') {
                oDataVersion = value.trim();
            }
        });
        if (oDataVersion === '3.0') {
            return ODataVersion.v3;
        }
        else if (oDataVersion === '4.0') {
            return ODataVersion.v4;
        }
        else if (oDataVersion) {
            throw new Error('Unsupported OData-Version header: ' + oDataVersion);
        }
        return undefined;
    };
    /**
     * Returns the "OData-Version" value, for example "4.0".
     */
    ODataVersion.prototype.toString = function () {
        return this._versionString;
    };
    /**
     * Represents version 3.0 for the "OData-Version" header
     */
    ODataVersion.v3 = new ODataVersion('3.0');
    /**
     * Represents version 4.0 for the "OData-Version" header
     */
    ODataVersion.v4 = new ODataVersion('4.0');
    return ODataVersion;
}());
/* harmony default export */ __webpack_exports__["default"] = (ODataVersion);


/***/ }),

/***/ "J1+X":
/*!****************************************************!*\
  !*** ./lib/oauthTokenProvider/OBOTokenProvider.js ***!
  \****************************************************/
/*! exports provided: OBOTokenProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OBOTokenProvider", function() { return OBOTokenProvider; });
/* harmony import */ var _AadConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AadConstants */ "MGiw");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../spHttpClient/SPHttpClient */ "5q05");
/* harmony import */ var _AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AadErrorHandler */ "nUPw");




/**
 * Class that wraps the ADAL's authentication class
 * @internal
 */
var OBOTokenProvider = /** @class */ (function () {
    function OBOTokenProvider(authContext, tokenParameters) {
        this.servicePrincipalId = authContext.config.clientId;
        this._patchAdalAuthContext(authContext);
        this._authContext = authContext;
        this._serverRelativeUrl = tokenParameters.serverRelativeUrl;
        this._spHttpClient = tokenParameters.spHttpClient;
    }
    OBOTokenProvider.prototype.getToken = function (resourceEndpoint, useCachedToken) {
        if (useCachedToken === void 0) { useCachedToken = true; }
        return this._getAccessToken(resourceEndpoint, useCachedToken);
    };
    OBOTokenProvider.prototype._getAccessToken = function (resourceEndpoint, useCachedToken) {
        var cachedAccessToken = this._tryGetCachedAccessToken(resourceEndpoint);
        if (useCachedToken && cachedAccessToken) {
            return Promise.resolve(cachedAccessToken);
        }
        else {
            return this._fetchAccessToken(resourceEndpoint);
        }
    };
    /**
     * Returns an access token if a valid cached token exists
     */
    OBOTokenProvider.prototype._tryGetCachedAccessToken = function (resourceEndpoint) {
        var cachedToken;
        try {
            cachedToken = this._authContext.getCachedToken(resourceEndpoint);
        }
        catch (e) {
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_TraceLogger"].logError(OBOTokenProvider._logSource, e);
        }
        return cachedToken;
    };
    /**
     * See the following link for details about handling conditional access policies.
     * https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-conditional-access-developer
     */
    OBOTokenProvider.prototype._fetchAccessToken = function (resourceEndpoint) {
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('OBOTokenProvider.AcquireAccessToken');
        // Attempt to fetch a new access token
        return this._fetchAccessTokenSilent(resourceEndpoint)
            .then(function (token) {
            acquireAccessTokenQosMonitor.writeSuccess();
            return token;
        })
            .catch(function (e) {
            if (_AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._doesAadErrorCodeExist(e.message, _AadConstants__WEBPACK_IMPORTED_MODULE_0__["default"].EXPECTED_AAD_ERRORS)) {
                acquireAccessTokenQosMonitor.writeExpectedFailure(e.message);
            }
            else {
                acquireAccessTokenQosMonitor.writeUnexpectedFailure(e.message);
            }
            throw e;
        });
    };
    /**
     * Wraps the ADAL.js callback code with a promise.
     */
    OBOTokenProvider.prototype._fetchAccessTokenSilent = function (resourceEndpoint) {
        var urlToCall = this._serverRelativeUrl + "/_api/Microsoft.SharePoint.Internal" +
            (".ClientSideComponent.Token.AcquireOBOToken?resource='" + resourceEndpoint + "'") +
            ("&clientId='" + this._authContext.config.clientId + "'");
        return this._spHttpClient.get(urlToCall, _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_2__["default"].configurations.v1, {
            headers: {
                'X-HTTP-Method': 'GET',
                'OData-Version': '3.0'
            }
        })
            .then(function (response) {
            return response.ok ? response.json() : Promise.reject(response.json());
        })
            .then(function (json) {
            return JSON.parse(json.value).AccessToken;
        });
    };
    /**
     * Adal creates an iframe without the sandbox attribute.
     *  Adal assumes it's being used as a singleton but this will not work for our scenario.
     */
    OBOTokenProvider.prototype._patchAdalAuthContext = function (authContext) {
        Object.getPrototypeOf(authContext)._singletonInstance = undefined;
    };
    OBOTokenProvider._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create('OBOTokenProvider');
    return OBOTokenProvider;
}());



/***/ }),

/***/ "KkUw":
/*!*****************************************************!*\
  !*** ./lib/oauthTokenProvider/AadTokenProviders.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _MockAadTokenProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MockAadTokenProvider */ "mXNH");

/**
 * AadTokenProviders is used to retrieve preinitialized instances of the AadTokenProvider class.
 * This class should only be used within the SharePoint Framework.
 * @internal
 */
var AadTokenProviders = /** @class */ (function () {
    function AadTokenProviders() {
    }
    /**
     * Initializes the AadTokenProviders. Must be called before fetching AadTokenProvider objects.
     * @internal
     */
    AadTokenProviders._initialize = function (configurable, preAuthorizedConfig) {
        AadTokenProviders._configurableTokenProvider = configurable;
        AadTokenProviders._preAuthorizedConfiguration = preAuthorizedConfig;
    };
    Object.defineProperty(AadTokenProviders, "configurable", {
        /**
         * Retrieves a preinitialized version of the `AadTokenProvider` class for communicating with the
         * current tenant's configurable Service Principal. This application can be configured
         * by granting permission scopes to the tenant's instance of the Service Principal.
         *
         * For more information, see
         * {@link https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient}
         */
        get: function () {
            return AadTokenProviders._configurableTokenProvider;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(AadTokenProviders, "preAuthorizedConfiguration", {
        /**
         * Retrieves the configuration for communicating with the current tenant's Service
         * Principal. This application has a set of preauthorized scopes from Microsoft.
         */
        get: function () {
            return this._preAuthorizedConfiguration;
        },
        enumerable: true,
        configurable: true
    });
    AadTokenProviders._configurableTokenProvider = new _MockAadTokenProvider__WEBPACK_IMPORTED_MODULE_0__["default"]();
    return AadTokenProviders;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadTokenProviders);


/***/ }),

/***/ "LJZb":
/*!**************************************!*\
  !*** ./lib/httpClient/HttpClient.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _FetchProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FetchProvider */ "UE6e");
/* harmony import */ var _HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HttpClientConfiguration */ "zgJL");
/* harmony import */ var _HttpClientResponse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HttpClientResponse */ "0v/C");
/* harmony import */ var _HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HttpClientHelper */ "8Y7G");





/**
 * HttpClient implements a basic set of features for performing REST operations against
 * a generic service.
 *
 * @remarks
 * For communicating with SharePoint, use the {@link SPHttpClient} class instead.
 *
 * @public
 */
var HttpClient = /** @class */ (function () {
    function HttpClient(serviceScope) {
        var _this = this;
        this._serviceScope = serviceScope;
        serviceScope.whenFinished(function () {
            _this._fetchProvider = serviceScope.consume(_FetchProvider__WEBPACK_IMPORTED_MODULE_1__["fetchProviderServiceKey"]);
        });
    }
    /**
     * Performs a REST service call.
     *
     * @remarks
     * Although the SPHttpClient subclass adds additional enhancements, the parameters and semantics
     * for HttpClient.fetch() are essentially the same as the WHATWG API standard that is documented here:
     * https://fetch.spec.whatwg.org/
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    HttpClient.prototype.fetch = function (url, configuration, options) {
        return _HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].fetchCore(configuration, new Request(url, options), this._serviceScope, this._fetchProvider, HttpClient._className).then(function (response) {
            return new _HttpClientResponse__WEBPACK_IMPORTED_MODULE_3__["default"](response);
        });
    };
    /**
     * Calls fetch(), but sets the method to "GET".
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    HttpClient.prototype.get = function (url, configuration, options) {
        return this.fetch(url, configuration, _HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].overrideHttpMethod(options, 'GET'));
    };
    /**
     * Calls fetch(), but sets the method to "POST".
     *
     * @param url - the URL to fetch
     * @param configuration - determines the default behavior of HttpClient; normally this should
     *   be the latest version number from HttpClientConfigurations
     * @param options - additional options that affect the request
     * @returns A promise with behavior similar to WHATWG fetch().  This promise will resolve normally
     * (with {@link HttpClientResponse.ok} being false) for error status codes such as HTTP 404
     * or 500.  The promise will only reject for network failures or other errors that prevent communication
     * with the server.
     */
    HttpClient.prototype.post = function (url, configuration, options) {
        return this.fetch(url, configuration, _HttpClientHelper__WEBPACK_IMPORTED_MODULE_4__["default"].overrideHttpMethod(options, 'POST'));
    };
    /**
     * The standard predefined HttpClientConfiguration objects for use with
     * the HttpClient class.
     */
    HttpClient.configurations = _HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__["predefinedConfigurations"];
    /**
     * The service key for HttpClient.
     *
     * @public
     */
    HttpClient.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:HttpClient', HttpClient);
    HttpClient._className = 'HttpClient';
    return HttpClient;
}());
/* harmony default export */ __webpack_exports__["default"] = (HttpClient);


/***/ }),

/***/ "MGiw":
/*!************************************************!*\
  !*** ./lib/oauthTokenProvider/AadConstants.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Internal constants used for the AadTokenProvider
 * @internal
 */
var AadConstants = /** @class */ (function () {
    function AadConstants() {
    }
    /**
     * This string contains the resource used for the login reply URL. This resource
     * will wait until the id token has been retrieved.
     */
    AadConstants.SPFX_SINGLE_SIGN_ON_REPLY_URL = 'spfxsinglesignon.aspx';
    /**
     * This string contains the redirect query parameter used for the acquireToken reply URL. After an access
     * token has been retrieved, the page will redirect to the page attempting to request an access token.
     */
    AadConstants.REDIRECT_QUERY_PARAM = 'redirect';
    /**
     * This GUID is the unique identifier for SharePoint Online Web Client Extensibility Application Principal.
     * @remarks
     * For more information about Application and Service Principals, see
     * {@link https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects}
     */
    AadConstants.PRE_AUTHORIZED_APP_PRINCIPAL_ID = '08e18876-6177-487e-b8b5-cf950c1e598c';
    /**
     * Set of error codes that cannot be resolved by user interation.
     * {@link https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes}
     */
    AadConstants.UNRESOLVABLE_AAD_ERROR_CODES = new Set([
        'AADSTS65001',
        'AADSTS53000',
        'AADSTS53003' // Conditional Access Policies
    ]);
    /**
     * Set of error codes that can be resolved by a full page redirect to Azure AD.
     * {@link https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes}
     */
    AadConstants.RESOLVABLE_AAD_ERROR_CODES = new Set([
        'AADSTS50058',
        'AADSTS50076',
        'AADSTS50079',
        'AADSTS50132',
        'AADSTS50133' // Session expired
    ]);
    /**
     * Set of error codes that we mark as expected.
     * {@link https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes}
     */
    AadConstants.EXPECTED_AAD_ERRORS = new Set([
        'AADSTS53000',
        'AADSTS53003',
        'AADSTS50076',
        'AADSTS50079',
        'AADSTS50132',
        'AADSTS50133' // Session expired
    ]);
    /**
     * Set of error codes that can be resolved by a full page redirect to Azure AD.
     * {@link https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-handling-exceptions}
     */
    AadConstants.RESOLVABLE_ERROR_CODES = new Set([
        'interaction_required',
        'login_required'
    ]);
    /**
     * This string contains the ID of the Office 365 SharepointOnline AAD Application
     * , which is the same across all tenants
     */
    AadConstants.OFFICE_365_SHAREPOINT_ONLINE_ID = '00000003-0000-0ff1-ce00-000000000000';
    /**
     * This string contains the link to SPO third party app Identifier Uri
     */
    AadConstants.SPO_THIRD_PARTY_APP_IDENTIFIER_URI = 'https://microsoft.spfx3rdparty.com';
    return AadConstants;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadConstants);


/***/ }),

/***/ "Pac7":
/*!*************************************************!*\
  !*** ./lib/caching/CacheDataProviderService.js ***!
  \*************************************************/
/*! exports provided: CacheDataProviderService, cacheDataProviderServiceKey */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CacheDataProviderService", function() { return CacheDataProviderService; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cacheDataProviderServiceKey", function() { return cacheDataProviderServiceKey; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/**
 * @copyright (c) Microsoft Corporation. All rights reserved.
 */

/**
 * The CacheDataProviderService used for injecting CacheDataprovider singelton to SPHttpClient
 *
 * @internal
 */
var CacheDataProviderService = /** @class */ (function () {
    /**
     * Initializes a new instance of the CacheDataProviderService class.
     * @param serviceScope - The service scope.
     */
    function CacheDataProviderService(serviceScope) {
        // do nothing
    }
    Object.defineProperty(CacheDataProviderService.prototype, "_provider", {
        /**
         * Gets the cache data provider
         *
         * @internal
         */
        get: function () {
            return this._cacheDataProvider;
        },
        /**
         * Sets the cache data provider
         * @param provider - The cache data provider
         *
         * @internal
         */
        set: function (provider) {
            _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(provider, 'Cache provider can not be null or undefined');
            if (provider.isDisposed) {
                throw new Error('Cache provider can not be disposed');
            }
            if (this._cacheDataProvider) {
                throw new Error('Cache provider can only be set once');
            }
            this._cacheDataProvider = provider;
        },
        enumerable: true,
        configurable: true
    });
    return CacheDataProviderService;
}());

/**
 * Gets the service key.
 *
 * @internal
 */
var cacheDataProviderServiceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:CacheDataProvider', CacheDataProviderService);


/***/ }),

/***/ "Qacf":
/*!*****************************************!*\
  !*** ./lib/spHttpClient/DigestCache.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/FetchProvider */ "UE6e");
/**
 * @copyright Microsoft Corporation. All rights reserved.
 */



/**
 * {@inheritDoc IDigestCache}
 *
 * @public
 */
var DigestCache = /** @class */ (function () {
    function DigestCache(serviceScope) {
        var _this = this;
        this._digestsByUrl = new Map();
        serviceScope.whenFinished(function () {
            _this._fetchProvider = serviceScope.consume(_httpClient_FetchProvider__WEBPACK_IMPORTED_MODULE_2__["fetchProviderServiceKey"]);
            _this._timeProvider = serviceScope.consume(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["TimeProvider"].serviceKey);
        });
    }
    /**
     * {@inheritDoc IDigestCache.fetchDigest}
     */
    DigestCache.prototype.fetchDigest = function (webUrl) {
        var _this = this;
        var normalizedWebUrl = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["UrlUtilities"].removeEndSlash(webUrl);
        var cachedDigest = this._digestsByUrl.get(normalizedWebUrl);
        if (cachedDigest) {
            var timestamp = this._timeProvider.getDate().getTime();
            if (timestamp < cachedDigest.expirationTimestamp) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(DigestCache._logSource, 'DigestCache: Reusing cached digest.  Expiration: ' + cachedDigest.expirationTimestamp);
                return Promise.resolve(cachedDigest.value);
            }
        }
        // If it wasn't in the cache, then we need to fetch a new one.
        // Create the REST API URL
        var digestUrl = normalizedWebUrl + '/_api/contextinfo';
        // NOTE: We don't want people to be injecting random headers throughout
        // their code.  As SPHttpClient evolves, maybe there is some way we can
        // combine this with the headers being added there.
        var rawRequest = new Request(digestUrl, {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-type': 'application/json;odata=verbose;charset=utf-8'
            },
            credentials: 'same-origin',
            cache: 'no-cache'
        });
        var preFetchDigestTime = this._timeProvider.getDate().getTime();
        return this._fetchProvider.fetch(rawRequest).then(function (response) {
            return response.json();
        }).then(function (responseObject) {
            var digestValue = responseObject.FormDigestValue;
            var seconds = responseObject.FormDigestTimeoutSeconds;
            var expirationTimeMs = preFetchDigestTime +
                (1000 * seconds) -
                DigestCache.REST_EXPIRATION_SLOP_MS;
            _this.addDigestToCache(normalizedWebUrl, digestValue, expirationTimeMs);
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(DigestCache._logSource, 'DigestCache: Fetched new digest');
            return digestValue;
        });
    };
    /**
     * {@inheritDoc IDigestCache.addDigestToCache}
     */
    DigestCache.prototype.addDigestToCache = function (webUrl, digestValue, expirationTimestamp) {
        // Don't use bad digest to the cache
        var currentTimestamp = this._timeProvider.getDate().getTime();
        if (currentTimestamp < expirationTimestamp) {
            var normalizedWebUrl = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["UrlUtilities"].removeEndSlash(webUrl);
            var newCachedDigest = {
                value: digestValue,
                expirationTimestamp: expirationTimestamp
            };
            this._digestsByUrl.set(normalizedWebUrl, newCachedDigest);
        }
    };
    /**
     * {@inheritDoc IDigestCache.clearDigest}
     */
    DigestCache.prototype.clearDigest = function (webUrl) {
        var normalizedWebUrl = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["UrlUtilities"].removeEndSlash(webUrl);
        var found = this._digestsByUrl.delete(normalizedWebUrl);
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(DigestCache._logSource, "DigestCache: Requested to clear cache entry: " + (found ? 'found' : 'not found'));
        return found;
    };
    /**
     * {@inheritDoc IDigestCache.clearAllDigests}
     */
    DigestCache.prototype.clearAllDigests = function () {
        this._digestsByUrl.clear();
    };
    /**
     * The service key for IDigestCache.
     */
    DigestCache.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["ServiceKey"].create('sp-client-base:DigestCache', DigestCache);
    // The digest cache expiration times are measured from whenever the C# code on the server
    // generated the digest, whereas in the current implementation, we start measuring from
    // whenever the user navigated to the current page. We don’t know how much time elapsed
    // between those two times (e.g. due to a page taking unusually long to load on the server
    // or a sluggish browser), so we conservatively subtract 30 seconds from
    // SPWebApplication.FormDigestSettings.Timeout (whose default is 30 minutes). If for some reason an
    // admin had configured the timeout to be very short, then the preloaded value can’t be used at all,
    // but this isn’t a big deal since the REST call is measured accurately and has a much smaller slop.
    // Estimates any noise e.g. due to server clocks being slightly out of sync, or the browser
    // clock being imprecise
    DigestCache.REST_EXPIRATION_SLOP_MS = 15000; // 15 secs
    DigestCache._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('DigestCache');
    return DigestCache;
}());
/* harmony default export */ __webpack_exports__["default"] = (DigestCache);


/***/ }),

/***/ "SFYc":
/*!*****************************************************!*\
  !*** ./lib/oauthTokenProvider/MsalTokenProvider.js ***!
  \*****************************************************/
/*! exports provided: MsalTokenProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MsalTokenProvider", function() { return MsalTokenProvider; });
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _AadConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AadConstants */ "MGiw");
/* harmony import */ var _AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AadErrorHandler */ "nUPw");




/**
 * Class that wraps the MSAL's authentication class
 * @internal
 */
var MsalTokenProvider = /** @class */ (function () {
    function MsalTokenProvider(configuration) {
        this._defaultConfiguration = configuration;
    }
    MsalTokenProvider.prototype.getToken = function (resourceEndpoint, useCachedToken) {
        var _this = this;
        if (useCachedToken === void 0) { useCachedToken = true; }
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('MsalTokenProvider.GetToken');
        var extraData = this._generateTelemetryExtraData();
        return this._loginSilent()
            .then(function () { return _this._acquireToken(resourceEndpoint); })
            .then(function (accessToken) {
            acquireAccessTokenQosMonitor.writeSuccess(extraData);
            return accessToken;
        })
            .catch(function (e) { return _this._handleAuthErrors(acquireAccessTokenQosMonitor, e, extraData); });
    };
    MsalTokenProvider.prototype._acquireToken = function (resourceEndpoint) {
        var _this = this;
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('MsalTokenProvider.AcquireAccessTokenSilent');
        var extraData = this._generateTelemetryExtraData();
        if (!this._msalPromise) {
            this._msalPromise = this._loadMsalJs();
        }
        return this._msalPromise
            .then(function (msal) {
            // Adding ./default returns all of a resource's permission scopes
            return msal.acquireTokenSilent({
                authority: 'https://login.microsoftonline.com/' + _this._defaultConfiguration.aadTenantId,
                correlationId: extraData.CorrelationId,
                forceRefresh: true,
                loginHint: _this._defaultConfiguration.userPrincipalName,
                scopes: [resourceEndpoint + '/.default']
            });
        })
            .then(function (response) {
            acquireAccessTokenQosMonitor.writeSuccess(extraData);
            return response.accessToken;
        })
            .catch(function (e) { return _this._handleAuthErrors(acquireAccessTokenQosMonitor, e, extraData); });
    };
    MsalTokenProvider.prototype._loginSilent = function () {
        var _this = this;
        var acquireIdTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('MsalTokenProvider.AcquireIdTokenSilent');
        var extraData = this._generateTelemetryExtraData();
        if (!this._msalPromise) {
            this._msalPromise = this._loadMsalJs();
        }
        return this._msalPromise
            .then(function (msal) {
            return msal.acquireTokenSilent({
                authority: 'https://login.microsoftonline.com/' + _this._defaultConfiguration.aadTenantId,
                correlationId: extraData.CorrelationId,
                forceRefresh: true,
                loginHint: _this._defaultConfiguration.userPrincipalName,
                scopes: [_this._defaultConfiguration.servicePrincipalId]
            });
        })
            .then(function (response) {
            acquireIdTokenQosMonitor.writeSuccess(extraData);
            return response.accessToken;
        })
            .catch(function (e) { return _this._handleAuthErrors(acquireIdTokenQosMonitor, e, extraData); });
    };
    MsalTokenProvider.prototype._loadMsalJs = function () {
        var _this = this;
        var loadMsalQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"]('MsalTokenProvider.LoadMsal');
        return __webpack_require__.e(/*! import() | sp-http-msal */ "sp-http-msal").then(__webpack_require__.t.bind(null, /*! ./msal.min.js */ "dDMZ", 7))
            .then(function (msal) {
            loadMsalQosMonitor.writeSuccess();
            return new msal.UserAgentApplication({
                auth: {
                    clientId: _this._defaultConfiguration.servicePrincipalId,
                    navigateToLoginRequestUrl: false,
                    redirectUri: _this._defaultConfiguration.redirectUri
                },
                system: {
                    loadFrameTimeout: 10000,
                    navigateFrameWait: 0
                }
            });
        })
            .catch(function (e) {
            loadMsalQosMonitor.writeUnexpectedFailure(e);
            throw e;
        });
    };
    MsalTokenProvider.prototype._generateTelemetryExtraData = function () {
        return {
            CorrelationId: _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].newGuid().toString(),
            isInternal: this._defaultConfiguration.servicePrincipalId === _AadConstants__WEBPACK_IMPORTED_MODULE_2__["default"].PRE_AUTHORIZED_APP_PRINCIPAL_ID
        };
    };
    MsalTokenProvider.prototype._handleAuthErrors = function (monitor, error, extraData) {
        if (_AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._doesAadErrorCodeExist(error.message, _AadConstants__WEBPACK_IMPORTED_MODULE_2__["default"].EXPECTED_AAD_ERRORS)) {
            monitor.writeExpectedFailure(error.message, error, extraData);
        }
        else {
            monitor.writeUnexpectedFailure(error.message, error, extraData);
        }
        throw error;
    };
    return MsalTokenProvider;
}());



/***/ }),

/***/ "UE6e":
/*!*****************************************!*\
  !*** ./lib/httpClient/FetchProvider.js ***!
  \*****************************************/
/*! exports provided: default, fetchProviderServiceKey */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchProviderServiceKey", function() { return fetchProviderServiceKey; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * The default implementation of IFetchProvider, which simply calls window.fetch().
 */
var FetchProvider = /** @class */ (function () {
    function FetchProvider(serviceScope) {
        // (this constructor is currently unused, but it is required by the
        // ServiceKey.create() contract)
    }
    FetchProvider.prototype.fetch = function (request) {
        return window.fetch(request);
    };
    return FetchProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (FetchProvider);
/**
 * The service key for IFetchProvider.
 *
 * @alpha
 */
var fetchProviderServiceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-client-base:FetchProvider', FetchProvider);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "WTVx":
/*!***********************************!*\
  !*** ./lib/SPHttpStrings.resx.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_+tvmKa3YEOqWGKKXzwjtaw';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "Zjyx":
/*!********************************************************************!*\
  !*** C:/agent/1/_work/5/s/libraries/sp-client-shared/lib/index.js ***!
  \********************************************************************/
/*! exports provided: OAuthUtility, OAuthUtilityError, OAuthUtilityErrorType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _tokenUtility_OAuthUtility__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tokenUtility/OAuthUtility */ "BNrv");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OAuthUtility", function() { return _tokenUtility_OAuthUtility__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _tokenUtility_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tokenUtility/OAuthUtilityError */ "nOSL");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OAuthUtilityError", function() { return _tokenUtility_OAuthUtilityError__WEBPACK_IMPORTED_MODULE_1__["default"]; });

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





/***/ }),

/***/ "bLht":
/*!********************************************!*\
  !*** ./lib/msGraphClient/MSGraphClient.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../oauthTokenProvider/AadTokenProviders */ "KkUw");
/* harmony import */ var _graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphHttpClient/GraphHttpClientContext */ "iDX0");
/* harmony import */ var _SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SPHttpStrings.resx */ "WTVx");





/**
 * MSGraphClient is used to perform REST calls against Microsoft Graph.
 *
 * @remarks The Microsoft Graph JavaScript client library is a lightweight wrapper around the
 * Microsoft Graph API. This class allows developers to start making REST calls to MSGraph without
 * needing to initialize the the MSGraph client library. If a custom configuration is desired,
 * the MSGraphClient api function needs to be provided with that custom configuration for
 * every request.
 *
 * For more information: {@link https://github.com/microsoftgraph/msgraph-sdk-javascript}
 *
 * @public
 */
var MSGraphClient = /** @class */ (function () {
    /**
     * @param serviceScope - Provides services for the MSGraphClient to consume.
     *
     * @internal
     */
    function MSGraphClient(serviceScope) {
        var _this = this;
        serviceScope.whenFinished(function () {
            MSGraphClient._graphBaseUrl = serviceScope.consume(_graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_3__["default"].serviceKey).getGraphEndpointUrl();
            if (!MSGraphClient._instance) {
                MSGraphClient._instance = _this._createGraphClientInstance(_oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_2__["default"].configurable);
            }
        });
    }
    /**
     * All calls to Microsoft Graph are chained together starting with the api function.
     *
     * @remarks Path supports the following formats:
     * * me
     * * /me
     * * https://graph.microsoft.com/v1.0/me
     * * https://graph.microsoft.com/beta/me
     * * me/events?$filter=startswith(subject, 'ship')
     *
     * The authProvider and baseUrl option should not be used, as they have already been
     * provided by the framework. See the official documentation here:
     * https://github.com/microsoftgraph/msgraph-sdk-javascript
     *
     * @param path - The path for the request to MSGraph.
     * @param config - Sets the configuration for this request.
     */
    MSGraphClient.prototype.api = function (path, config) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(path, 'path');
        MSGraphClient._instance.config = Object.assign({}, MSGraphClient._originalConfig);
        if (config) {
            for (var key in config) {
                if (config[key]) {
                    MSGraphClient._instance.config[key] = config[key];
                }
            }
        }
        return MSGraphClient._instance.api(path);
    };
    MSGraphClient.prototype._createGraphClientInstance = function (tokenProvider) {
        var _this = this;
        var graphClientModule;
        if (!(MSGraphClient._window.MicrosoftGraph && MSGraphClient._window.MicrosoftGraph.Client)) {
            throw new Error(_SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_4__["default"].graphClientInitializationError);
        }
        else {
            // Workaround needed to interact with the Client object.
            // See https://github.com/microsoftgraph/msgraph-sdk-javascript/issues/47 for more details
            graphClientModule = MSGraphClient._window.MicrosoftGraph.Client;
            // Removing window variable reference to MSGraphJsSdk object
            MSGraphClient._window.MicrosoftGraph = undefined;
        }
        var graphClient = graphClientModule.init({
            authProvider: function (done) {
                _this._getOAuthToken(tokenProvider).then(function (token) {
                    done(undefined /** error object */, token);
                }).catch(function (e) {
                    // The IGraphRequest functions will return a rejected promise if it fails to get an OAuth2Token.
                    done(e, '');
                });
            },
            baseUrl: MSGraphClient._graphBaseUrl
        });
        MSGraphClient._originalConfig = graphClient.config;
        return graphClient;
    };
    MSGraphClient.prototype._getOAuthToken = function (tokenProvider) {
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_QosMonitor"]('MSGraphClient.FetchGraphToken');
        return tokenProvider.getToken(MSGraphClient._graphBaseUrl).then(function (response) {
            qosMonitor.writeSuccess();
            return response;
        }).catch(function (error) {
            qosMonitor.writeUnexpectedFailure('FetchGraphToken', error);
            throw error;
        });
    };
    MSGraphClient._window = window;
    return MSGraphClient;
}());
/* harmony default export */ __webpack_exports__["default"] = (MSGraphClient);


/***/ }),

/***/ "czIf":
/*!*******************************************************!*\
  !*** ./lib/oauthTokenProvider/OAuthUtilityContext.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../spHttpClient/SPHttpClient */ "5q05");


var TokenUtilityLogger = /** @class */ (function () {
    function TokenUtilityLogger() {
    }
    TokenUtilityLogger.prototype.logInfo = function (message) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(TokenUtilityLogger.logSource, message);
    };
    TokenUtilityLogger.prototype.logError = function (message) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logError(TokenUtilityLogger.logSource, new Error(message));
    };
    TokenUtilityLogger.prototype.logWarning = function (message) {
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logVerbose(TokenUtilityLogger.logSource, 'Warning: ' + message);
    };
    TokenUtilityLogger.logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('TokenUtility');
    return TokenUtilityLogger;
}());
/**
 * The DelegationTokenProvider's implementation was moved into the sp-client-shared
 * package so that it can be shared with other teams that are not using sp-client-base
 * platform. To support this, the sp-client-shared package defines an interface
 * ITokenUtilityContext which abstracts the basic services that are needed by that
 * code. TokenUtilityContext is our adapter that wires up this interface to the
 * corresponding services in sp-client-base; it can be considered part of the
 * internal implementation of DelegationTokenProvider; it is not intended to be
 * used by other parts of our framework.
 */
var OAuthUtilityContext = /** @class */ (function () {
    function OAuthUtilityContext(serviceScope) {
        var _this = this;
        serviceScope.whenFinished(function () {
            _this._spHttpClient = serviceScope.consume(_spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_1__["default"].serviceKey);
            _this._logger = new TokenUtilityLogger();
        });
    }
    Object.defineProperty(OAuthUtilityContext.prototype, "logger", {
        get: function () {
            return this._logger;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityContext.prototype, "webUrl", {
        get: function () {
            // @TODO: VSO 270783 -- Convert this into an input parameter.
            return '';
        },
        enumerable: true,
        configurable: true
    });
    OAuthUtilityContext.prototype.fetchWithDigest = function (request) {
        var _this = this;
        return request.blob().then(function (requestBody) {
            return _this._spHttpClient.fetch(request.url, _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_1__["default"].configurations.v1, {
                method: request.method,
                headers: request.headers,
                body: requestBody
            });
        });
    };
    OAuthUtilityContext.prototype.qosMonitor = function () {
        return new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_QosMonitor"](OAuthUtilityContext.qosName);
    };
    OAuthUtilityContext.qosName = 'OAuthTokenProvider';
    return OAuthUtilityContext;
}());
/* harmony default export */ __webpack_exports__["default"] = (OAuthUtilityContext);


/***/ }),

/***/ "eGlh":
/*!*******************************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientConfiguration.js ***!
  \*******************************************************/
/*! exports provided: default, predefinedConfigurations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "predefinedConfigurations", function() { return predefinedConfigurations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SPHttpClientCommonConfiguration */ "ea2N");
/* harmony import */ var _ODataVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ODataVersion */ "GSEB");
/* harmony import */ var _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../httpClient/HttpClient */ "LJZb");




/**
 * Configuration for {@link SPHttpClient}.
 *
 * @remarks
 * The SPHttpClientConfiguration object provides a set of switches for enabling/disabling
 * various features of the SPHttpClient class.  Normally these switches are set
 * (e.g. when calling SPHttpClient.fetch()) by providing one of the predefined defaults
 * from SPHttpClientConfigurations, however switches can also be changed via the
 * SPHttpClientConfiguration.overrideWith() method.
 *
 * @public
 */
var SPHttpClientConfiguration = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SPHttpClientConfiguration, _super);
    /**
     * Constructs a new instance of SPHttpClientConfiguration with the specified flags.
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function SPHttpClientConfiguration(flags, overrideFlags) {
        return _super.call(this, flags, overrideFlags) || this;
    }
    /**
     * @override
     */
    SPHttpClientConfiguration.prototype.overrideWith = function (sourceFlags) {
        return new SPHttpClientConfiguration(this.flags, sourceFlags);
    };
    Object.defineProperty(SPHttpClientConfiguration.prototype, "defaultSameOriginCredentials", {
        /**
         * {@inheritDoc ISPHttpClientConfiguration.defaultSameOriginCredentials}
         */
        get: function () {
            return this.flags.defaultSameOriginCredentials;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPHttpClientConfiguration.prototype, "defaultODataVersion", {
        /**
         * {@inheritDoc ISPHttpClientConfiguration.defaultODataVersion}
         */
        get: function () {
            return this.flags.defaultODataVersion;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPHttpClientConfiguration.prototype, "requestDigest", {
        /**
         * {@inheritDoc ISPHttpClientConfiguration.requestDigest}
         */
        get: function () {
            return this.flags.requestDigest;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @override
     */
    SPHttpClientConfiguration.prototype.initializeFlags = function () {
        _super.prototype.initializeFlags.call(this);
        this.flags.defaultSameOriginCredentials = false;
        this.flags.defaultODataVersion = _ODataVersion__WEBPACK_IMPORTED_MODULE_2__["default"].v3;
        this.flags.requestDigest = false;
    };
    return SPHttpClientConfiguration;
}(_SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_1__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientConfiguration);
var predefinedConfigurations = {
    v1: new SPHttpClientConfiguration(_httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_3__["default"].configurations.v1, {
        // ISPHttpClientCommonConfiguration:
        jsonRequest: true,
        jsonResponse: true,
        // ISPHttpClientConfiguration:
        defaultSameOriginCredentials: true,
        defaultODataVersion: _ODataVersion__WEBPACK_IMPORTED_MODULE_2__["default"].v4,
        requestDigest: true
    })
};


/***/ }),

/***/ "ea2N":
/*!*************************************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientCommonConfiguration.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../httpClient/HttpClientConfiguration */ "zgJL");


/**
 * Common base class for SPHttpClientConfiguration and SPHttpClientBatchConfiguration.
 *
 * @public
 */
var SPHttpClientCommonConfiguration = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SPHttpClientCommonConfiguration, _super);
    /**
     * Constructs a new instance of SPHttpClientCommonConfiguration with the specified flags.
     *
     * @remarks
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function SPHttpClientCommonConfiguration(flags, overrideFlags) {
        return _super.call(this, flags, overrideFlags) || this;
    }
    /**
     * @override
     */
    SPHttpClientCommonConfiguration.prototype.overrideWith = function (sourceFlags) {
        return new SPHttpClientCommonConfiguration(this.flags, sourceFlags);
    };
    Object.defineProperty(SPHttpClientCommonConfiguration.prototype, "jsonRequest", {
        /**
         * {@inheritDoc ISPHttpClientCommonConfiguration.jsonRequest}
         */
        get: function () {
            return this.flags.jsonRequest;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPHttpClientCommonConfiguration.prototype, "jsonResponse", {
        /**
         * {@inheritDoc ISPHttpClientCommonConfiguration.jsonResponse}
         */
        get: function () {
            return this.flags.jsonResponse;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @override
     */
    SPHttpClientCommonConfiguration.prototype.initializeFlags = function () {
        _super.prototype.initializeFlags.call(this);
        this.flags.jsonRequest = false;
        this.flags.jsonResponse = false;
    };
    return SPHttpClientCommonConfiguration;
}(_httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_1__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientCommonConfiguration);


/***/ }),

/***/ "gU3R":
/*!***************************************************!*\
  !*** ./lib/oauthTokenProvider/AdalAuthContext.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _AadConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AadConstants */ "MGiw");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AadErrorHandler */ "nUPw");




/**
 * Class that wraps the ADAL's authentication class
 * @internal
 */
var AdalAuthContext = /** @class */ (function () {
    function AdalAuthContext(authContext, aadUserId) {
        this.clientId = authContext.config.clientId;
        this._aadUserId = aadUserId || '';
        this._patchAdalAuthContext(authContext);
        this._authContext = authContext;
    }
    AdalAuthContext.prototype.getToken = function (resourceEndpoint, useCachedToken) {
        var _this = this;
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('AdalTokenProvider.GetToken');
        var extraData = {
            CorrelationId: _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].newGuid().toString(),
            isInternal: this.clientId === _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].PRE_AUTHORIZED_APP_PRINCIPAL_ID
        };
        return this._getAccessToken(resourceEndpoint, useCachedToken, extraData)
            .then(function (token) {
            acquireAccessTokenQosMonitor.writeSuccess(extraData);
            return token;
        })
            .catch(function (e) {
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(AdalAuthContext.changePromptingForRedirectionKillSwitchGuid, '11/07/19', 'Use error code property instead of AAD error code for triggering User Interaction')) {
                _AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._handleInteractionRequiredFailures(_this._authContext, e.message, resourceEndpoint);
            }
            _this._monitorAndThrowForAccessTokenExpectedFailures(acquireAccessTokenQosMonitor, e, resourceEndpoint, extraData);
            // Expected errors will log and throw an exception from the previous function
            acquireAccessTokenQosMonitor.writeUnexpectedFailure(e.message, e, extraData);
            throw e;
        });
    };
    AdalAuthContext.prototype._getAccessToken = function (resourceEndpoint, useCachedToken, extraData) {
        var cachedAccessToken = this._tryGetCachedAccessToken(resourceEndpoint);
        if (useCachedToken && cachedAccessToken) {
            // No network request was made.
            extraData.CorrelationId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].empty.toString();
            return Promise.resolve(cachedAccessToken);
        }
        else {
            if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(AdalAuthContext.unexpectedErrorsKillSwitchGuid, '10/30/19', 'Fix issue with unexpected errors')) {
                return this._fetchAccessToken(resourceEndpoint, extraData);
            }
            return this._fetchAccessTokenOld(resourceEndpoint, extraData);
        }
    };
    /**
     * Returns an access token if a valid cached token exists
     */
    AdalAuthContext.prototype._tryGetCachedAccessToken = function (resourceEndpoint) {
        var cachedToken;
        try {
            cachedToken = this._authContext.getCachedToken(resourceEndpoint);
            var jwtToken = this._authContext._extractIdToken(cachedToken);
            if (jwtToken.oid !== this._aadUserId || jwtToken.appid !== this.clientId) {
                cachedToken = undefined;
            }
        }
        catch (e) {
            // Empty block
        }
        return cachedToken;
    };
    /**
     * See the following link for details about handling conditional access policies.
     * https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-conditional-access-developer
     */
    AdalAuthContext.prototype._fetchAccessTokenOld = function (resourceEndpoint, extraData) {
        var _this = this;
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('AdalTokenProvider.AcquireAccessTokenSilent');
        this._authContext.config.correlationId = extraData.CorrelationId;
        var aadError;
        // Attempt to fetch a new access token
        return this._fetchAccessTokenSilent(resourceEndpoint)
            .catch(function (firstError) {
            aadError = firstError;
            _this._monitorAndThrowForAccessTokenExpectedFailures(acquireAccessTokenQosMonitor, firstError, resourceEndpoint, extraData);
        })
            .then(function (token) {
            if (token) {
                return token;
            }
            return _this._fetchAccessTokenSilent(resourceEndpoint);
        })
            .catch(function (secondError) {
            if (aadError) {
                throw aadError;
            }
            aadError = secondError;
            _this._monitorAndThrowForAccessTokenExpectedFailures(acquireAccessTokenQosMonitor, secondError, resourceEndpoint, extraData);
        })
            .then(function (token) {
            // If we don't have a token at this point, then we tried twice with unexpected failures
            if (!token) {
                if (!aadError) {
                    aadError = new Error('Neither a token or error was received');
                }
                if (aadError.message.indexOf('Token renewal operation failed due to timeout') > -1) {
                    aadError.message = aadError.message + ' AADCorrelationId: ' + extraData.CorrelationId;
                }
                acquireAccessTokenQosMonitor.writeUnexpectedFailure(aadError.message, aadError, extraData);
                throw aadError;
            }
            acquireAccessTokenQosMonitor.writeSuccess(extraData);
            return token;
        });
    };
    AdalAuthContext.prototype._fetchAccessToken = function (resourceEndpoint, extraData) {
        var _this = this;
        var acquireAccessTokenQosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('AdalTokenProvider.AcquireAccessTokenSilent');
        this._authContext.config.correlationId = extraData.CorrelationId;
        var expectedError;
        // Attempt to fetch a new access token
        return this._fetchAccessTokenSilent(resourceEndpoint)
            .catch(function (firstError) {
            try {
                _this._monitorAndThrowForAccessTokenExpectedFailures(acquireAccessTokenQosMonitor, firstError, resourceEndpoint, extraData);
            }
            catch (error) {
                expectedError = error;
                throw error;
            }
        })
            .then(function (token) { return token || _this._fetchAccessTokenSilent(resourceEndpoint); })
            .catch(function (secondError) {
            // Avoid processing an expected error on the first request
            if (expectedError) {
                throw expectedError;
            }
            _this._monitorAndThrowForAccessTokenExpectedFailures(acquireAccessTokenQosMonitor, secondError, resourceEndpoint, extraData);
            if (secondError.message === 'Token renewal operation failed due to timeout') {
                secondError.message = secondError.message + ' AADCorrelationId: ' + extraData.CorrelationId;
            }
            acquireAccessTokenQosMonitor.writeUnexpectedFailure(secondError, secondError, extraData);
            throw secondError;
        })
            .then(function (token) {
            acquireAccessTokenQosMonitor.writeSuccess(extraData);
            return token;
        });
    };
    /**
     * Throws an exception if an expected error has occurred. List of expected errors are listed in AadConstants.ts
     */
    AdalAuthContext.prototype._monitorAndThrowForAccessTokenExpectedFailures = function (acquireAccessTokenQosMonitor, aadError, resourceEndpoint, correlationObject) {
        if (_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(AdalAuthContext.changePromptingForRedirectionKillSwitchGuid, '11/07/19', 'Use error code property instead of AAD error code for triggering User Interaction')) {
            if (_AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._doesAadErrorCodeExist(aadError.message, _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].RESOLVABLE_AAD_ERROR_CODES)) {
                _AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._handleInteractionRequiredFailuresOld(this._authContext, aadError.message, resourceEndpoint);
                acquireAccessTokenQosMonitor.writeExpectedFailure(aadError.message, aadError, correlationObject);
                throw aadError;
            }
            else if (_AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._doesAadErrorCodeExist(aadError.message, _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].UNRESOLVABLE_AAD_ERROR_CODES)) {
                acquireAccessTokenQosMonitor.writeExpectedFailure(aadError.message, aadError, correlationObject);
                throw aadError;
            }
        }
        else {
            if (_AadErrorHandler__WEBPACK_IMPORTED_MODULE_3__["AadErrorHandler"]._doesAadErrorCodeExist(aadError.message, _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].EXPECTED_AAD_ERRORS)) {
                acquireAccessTokenQosMonitor.writeExpectedFailure(aadError.message, aadError, correlationObject);
                throw aadError;
            }
        }
    };
    /**
     * Wraps the ADAL.js callback code with a promise.
     */
    AdalAuthContext.prototype._fetchAccessTokenSilent = function (resourceEndpoint) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            _this._authContext.acquireToken(resourceEndpoint, function (errorDescription, token, errorType) {
                if (!token) {
                    reject(new Error('Error - Type : ' + errorType + ' - Description : ' + errorDescription));
                }
                else {
                    resolve(token);
                }
            });
        });
    };
    /**
     * Patching ADAL context to address design issues.
     */
    AdalAuthContext.prototype._patchAdalAuthContext = function (authContext) {
        var _this = this;
        // AuthContext object has a weird mechanism that forces the object to be a singleton
        // We're fixing this so that we can have multiple authContext objects
        Object.getPrototypeOf(authContext)._singletonInstance = undefined;
        // Patching ADAL's iframe to include sandbox mode
        authContext._addAdalFrame = function (iframeId) {
            return _this._addAdalFrame(authContext, iframeId);
        };
        // Patching ADAL's iframe rendering logic to avoid setTimeout.
        authContext._loadFrame = function (urlNavigate, frameName) {
            return _this._loadFrame(authContext, urlNavigate, frameName);
        };
        // Patching ADAL's to avoid fetching id token before access token
        authContext._user = {};
        // This is required for the MFA scenario. SPFxSingleSignOn.aspx reads this value redirects to the original page.
        authContext._saveItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST, window.location.href);
    };
    /**
     * Adds the hidden iframe for silent token renewal. This code is a security fix to ADAL.js's iframe
     * rendering code. IE11 doesn't support dynamically setting attributes on an iFrame element, so
     * we must patch the original implementation. Original code is in ADAL.js addAdalFrame.
     * https://github.com/AzureAD/azure-activedirectory-library-for-js/ for source code
     */
    AdalAuthContext.prototype._addAdalFrame = function (authContext, iframeId) {
        if (typeof iframeId === 'undefined') {
            return;
        }
        authContext.info('Add adal frame to document:' + iframeId);
        var adalFrame = document.getElementById(iframeId);
        var sandboxAttributes = 'allow-same-origin allow-scripts allow-forms allow-pointer-lock';
        if (!adalFrame) {
            if (document.createElement && document.documentElement &&
                /* tslint:disable:next-line no-any */
                (window.opera || window.navigator.userAgent.indexOf('MSIE 5.0') === -1)) {
                var ifr = document.createElement('iframe');
                ifr.setAttribute('id', iframeId);
                ifr.setAttribute('aria-hidden', 'true');
                ifr.setAttribute('sandbox', sandboxAttributes);
                ifr.style.visibility = 'hidden';
                ifr.style.position = 'absolute';
                ifr.style.width = ifr.style.height = ifr.style.border = '0';
                adalFrame = document.getElementsByTagName('body')[0].appendChild(ifr);
            }
            else if (document.body && document.body.insertAdjacentHTML) {
                document.body.insertAdjacentHTML('beforeEnd', '<iframe sandbox="' + sandboxAttributes + '" name="' +
                    iframeId + '" id="' + iframeId + '" style="display:none"></iframe>');
            }
            if (window.frames && window.frames[iframeId]) {
                adalFrame = window.frames[iframeId];
            }
        }
        return adalFrame;
    };
    /**
     * Opens a hidden iframe for silent token renewal. The original code performed this action in a really weird
     * and inefficent way, so we're fixing it.
     * Original code is in ADAL.js loadFrame.
     * https://github.com/AzureAD/azure-activedirectory-library-for-js/ for source code
     */
    AdalAuthContext.prototype._loadFrame = function (authContext, urlNavigate, frameName) {
        authContext.info('LoadFrame: ' + frameName);
        var frameHandle = authContext._addAdalFrame(frameName);
        frameHandle.src = urlNavigate;
    };
    AdalAuthContext.changePromptingForRedirectionKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('e9f10f8d-7bbd-4077-b992-a372f43466d7');
    AdalAuthContext.unexpectedErrorsKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('b862cbc3-9d33-4953-9225-758348e534bc');
    return AdalAuthContext;
}());
/* harmony default export */ __webpack_exports__["default"] = (AdalAuthContext);


/***/ }),

/***/ "hWUW":
/*!********************************************!*\
  !*** ./lib/spHttpClient/BatchedRequest.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This is a private helper class used by SPHttpClientBatch to track the state of each
 * queued REST request.
 */
var BatchedRequest = /** @class */ (function () {
    function BatchedRequest(request) {
        var _this = this;
        /**
         * The response.  This is tracked for diagnostic purposes only.
         */
        this.response = undefined;
        this.request = request;
        // Create the promise for this request.
        this.promise = new Promise(
        // tslint:disable-next-line:no-any
        function (resolve, reject) {
            _this._resolveCallback = resolve;
            _this._rejectCallback = reject;
        });
    }
    /**
     * This resolves the BatchedRequest.promise with the provided response.
     */
    BatchedRequest.prototype.resolvePromise = function (response) {
        if (!this._resolveCallback) {
            // This should never happen
            throw new Error('The promise was already settled');
        }
        this.response = response;
        this._resolveCallback(response);
        this._resolveCallback = undefined;
        this._rejectCallback = undefined;
    };
    /**
     * This rejects the BatchedRequest.promise with the provided error.
     */
    BatchedRequest.prototype.rejectPromiseIfNotResolved = function (error) {
        if (this.response) {
            // This handles an edge case where an exception occurred after we
            // called resolvePromise() for some but not all of the BatchedRequest
            // objects.
            return;
        }
        if (!this._rejectCallback) {
            // This should never happen
            throw new Error('The promise was already settled');
        }
        this._rejectCallback(error);
        this._resolveCallback = undefined;
        this._rejectCallback = undefined;
    };
    return BatchedRequest;
}());
/* harmony default export */ __webpack_exports__["default"] = (BatchedRequest);


/***/ }),

/***/ "iDX0":
/*!*******************************************************!*\
  !*** ./lib/graphHttpClient/GraphHttpClientContext.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * This class is useful for getting configuration properties to the GraphHttpClient
 * @internal
 */
var GraphHttpClientContext = /** @class */ (function () {
    function GraphHttpClientContext(serviceScope) {
        // Service Scope Pattern
    }
    /**
     * The initialize function should be called before the application/components
     * have a chance to make a GraphHttpClient request.
     */
    GraphHttpClientContext.prototype.initialize = function (webServerRelativeUrl, graphEndpointUrl, webAbsoluteUrl) {
        if (this._isInitialized) {
            throw new Error('GraphHttpClientContext has already been initialized.');
        }
        this._isInitialized = true;
        this._webServerRelativeUrl = webServerRelativeUrl;
        this._graphEndpointUrl = graphEndpointUrl;
        this._webAbsoluteUrl = webAbsoluteUrl;
    };
    /**
     * Gets the Microsoft Graph endpoint for the current environment. This value is set by
     * the initialize function. If the value is not set, this function will throw.
     */
    GraphHttpClientContext.prototype.getGraphEndpointUrl = function () {
        if (!this._isInitialized) {
            throw new Error('This operation cannot be performed until the GraphHttpClientContext is initialized.');
        }
        return this._graphEndpointUrl;
    };
    /**
     * Gets the webServerRelative url of the current page. This value is set by
     * the initialize function. If the value is not set, this function will throw.
     */
    GraphHttpClientContext.prototype.getWebServerRelativeUrl = function () {
        if (!this._isInitialized) {
            throw new Error('This operation cannot be performed until the GraphHttpClientContext is initialized.');
        }
        return this._webServerRelativeUrl;
    };
    /**
   * Gets the webAbsoluteUrl of the current page. This value is set by
   * the initialize function. If the value is not set, this function will throw.
   */
    GraphHttpClientContext.prototype.getWebAbsoluteUrl = function () {
        if (!this._isInitialized) {
            throw new Error('This operation cannot be performed until the GraphHttpClientContext is initialized.');
        }
        return this._webAbsoluteUrl;
    };
    /**
     * The service key for GraphHttpClientContext.
     */
    GraphHttpClientContext.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:GraphHttpClientContext', GraphHttpClientContext);
    return GraphHttpClientContext;
}());
/* harmony default export */ __webpack_exports__["default"] = (GraphHttpClientContext);


/***/ }),

/***/ "jtSf":
/*!****************************************************!*\
  !*** ./lib/oauthTokenProvider/AadTokenProvider.js ***!
  \****************************************************/
/*! exports provided: TokenAcquisitionEventArgs, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TokenAcquisitionEventArgs", function() { return TokenAcquisitionEventArgs; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _AdalAuthContextManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AdalAuthContextManager */ "0UKY");
/* harmony import */ var _MsalTokenProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MsalTokenProvider */ "SFYc");
/* harmony import */ var _SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SPHttpStrings.resx */ "WTVx");





/**
 * Arguments for a token acquisition failure event.
 * @public
 */
var TokenAcquisitionEventArgs = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TokenAcquisitionEventArgs, _super);
    function TokenAcquisitionEventArgs(message, redirectUrl) {
        var _this = _super.call(this) || this;
        _this.message = message;
        _this.redirectUrl = redirectUrl;
        return _this;
    }
    return TokenAcquisitionEventArgs;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["SPEventArgs"]));

/**
 * This class allows a developer to obtain OAuth2 tokens from Azure AD.
 *
 * OAuth2 tokens are used to authenticate the user from the SharePoint page
 * to other services such as PowerBI, Sway, Exchange, Yammer, etc.
 *
 * @privateRemarks
 * AadTokenProvider is replacing the /_api.SP.OAuth.Token/Acquire endpoint
 * for authentication with ADAL.js. At some point in the near future, when Azure AD v2.0
 * can support the same scenarios as the original version, we will switch to MSAL.
 *
 * @public
 * @sealed
 */
var AadTokenProvider = /** @class */ (function () {
    /**
     * @internal
     */
    function AadTokenProvider(configuration, oboConfiguration) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(configuration.aadInstanceUrl, 'aadInstanceUrl');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(configuration.aadTenantId, 'aadTenantId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(configuration.redirectUri, 'redirectUri');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(configuration.servicePrincipalId, 'servicePrincipalId');
        this._defaultConfiguration = configuration;
        this._msalTokenProvider = new _MsalTokenProvider__WEBPACK_IMPORTED_MODULE_3__["MsalTokenProvider"](configuration);
        this._oboConfiguration = oboConfiguration;
        this._tokenAcquisitionEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["SPEvent"](AadTokenProvider._tokenAcquisitionEventId);
    }
    /**
     * Fetches the AAD OAuth2 token for a resource if the user that's currently logged in has
     * access to that resource.
     *
     * The OAuth2 token should not be cached by the caller since it is already cached by the method
     * itself.
     *
     * @param resourceEndpoint - the resource for which the token should be obtained
     * @param useCachedToken - Allows the developer to specify if cached tokens should be returned.
     * An example of a resourceEndpoint would be https://graph.microsoft.com
     * @returns A promise that will be fullfiled with the token or that will reject
     *          with an error message
     */
    AadTokenProvider.prototype.getToken = function (resourceEndpoint, useCachedToken) {
        if (useCachedToken === void 0) { useCachedToken = true; }
        if (this._defaultConfiguration.servicePrincipalId === _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].empty.toString()) {
            return Promise.reject(new Error(_SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_4__["default"].servicePrincipalNotAvaliableError));
        }
        if (!_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["_SPKillSwitch"].isActivated(AadTokenProvider.msalTrialRunKillSwitchGuid, '09/11/19', 'Run MSAL for only 1/10th of all requests') &&
            Math.floor((Math.random() * 10)) === 0) {
            this._msalTokenProvider.getToken(resourceEndpoint)
                .catch(function (e) { });
        }
        return this._getTokenInternal(resourceEndpoint, this._defaultConfiguration, useCachedToken);
    };
    /**
   * Fetches the AAD OAuth2 token for a resource if the user that's currently logged in has
   * access to that resource.
   *
   * The OAuth2 token should not be cached by the caller since it is already cached by the method
   * itself.
   *
   * @param resourceEndpoint - the resource for which the token should be obtained
   * @param useCachedToken - Allows the developer to specify if cached tokens should be returned.
   * An example of a resourceEndpoint would be https://graph.microsoft.com
   * @returns A promise that will be fullfiled with the token or that will reject
   *          with an error message
   *
   * @internal
   */
    AadTokenProvider.prototype._getTokenInternal = function (resourceEndpoint, configuration, useCachedToken) {
        if (useCachedToken === void 0) { useCachedToken = true; }
        var tokenProviderConfig = configuration || this._defaultConfiguration;
        if (!this._authContextManager) {
            this._authContextManager = new _AdalAuthContextManager__WEBPACK_IMPORTED_MODULE_2__["default"]();
        }
        return this._authContextManager.getAuthContext(tokenProviderConfig, this._oboConfiguration)
            .then(function (authContext) { return authContext.getToken(resourceEndpoint, useCachedToken); });
    };
    Object.defineProperty(AadTokenProvider.prototype, "tokenAcquisitionEvent", {
        /**
         * Notifies the developer when Token Acquisition requires user action.
         * @eventproperty
         */
        get: function () {
            return this._tokenAcquisitionEvent;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Token Acquisition Event String
     * @internal
     */
    AadTokenProvider._tokenAcquisitionEventId = 'tokenAcquisitionFailure';
    AadTokenProvider.msalTrialRunKillSwitchGuid = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].parse('e177c5d1-fceb-45c5-95c0-438dff9b583b');
    return AadTokenProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadTokenProvider);


/***/ }),

/***/ "kyCB":
/*!*************************************************************!*\
  !*** ./lib/graphHttpClient/GraphHttpClientConfiguration.js ***!
  \*************************************************************/
/*! exports provided: default, predefinedConfigurations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "predefinedConfigurations", function() { return predefinedConfigurations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../httpClient/HttpClient */ "LJZb");
/* harmony import */ var _httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientConfiguration */ "zgJL");



/**
 * Configuration for {@link _GraphHttpClient}.
 *
 * @remarks
 * The GraphHttpClientConfiguration object provides a set of switches for enabling/disabling
 * various features of the GraphHttpClient class.  Normally these switches are set
 * (e.g. when calling GraphHttpClient.fetch()) by providing one of the predefined defaults
 * from GraphHttpClientConfigurations, however switches can also be changed via the
 * GraphHttpClientConfiguration.overrideWith() method.
 *
 * @deprecated The GraphHttpClient class has been superceded by the MSGraphClient class.
 * @internal
 */
var GraphHttpClientConfiguration = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GraphHttpClientConfiguration, _super);
    /**
     * Constructs a new instance of GraphHttpClientCommonConfiguration with the specified flags.
     *
     * @remarks
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function GraphHttpClientConfiguration(flags, overrideFlags) {
        return _super.call(this, flags, overrideFlags) || this;
    }
    return GraphHttpClientConfiguration;
}(_httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (GraphHttpClientConfiguration);
var predefinedConfigurations = {
    v1: new GraphHttpClientConfiguration(_httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_1__["default"].configurations.v1)
};


/***/ }),

/***/ "mCft":
/*!**************************************************!*\
  !*** ./lib/spHttpClient/SPHttpClientResponse.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "nv8F");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../httpClient/HttpClientResponse */ "0v/C");



/**
 * The Response subclass returned by methods such as SPHttpClient.fetch().
 *
 * @remarks
 * This is a placeholder.  In the future, additional SPHttpClient-specific functionality
 * may be added to this class.
 *
 * @public
 * @sealed
 */
var SPHttpClientResponse = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SPHttpClientResponse, _super);
    function SPHttpClientResponse(response) {
        return _super.call(this, response) || this;
    }
    /**
     * @override
     */
    SPHttpClientResponse.prototype.clone = function () {
        return new SPHttpClientResponse(this.nativeResponse.clone());
    };
    Object.defineProperty(SPHttpClientResponse.prototype, "correlationId", {
        /**
         * Returns the SharePoint correlation ID.
         *
         * @remarks
         *
         * The correlation ID is a Guid that can be used to associate log events that
         * are part of the same overall operation, but may originate from different services
         * or components.  SharePoint REST operations return the server's correlation ID
         * as the "sprequestguid" header.
         *
         * @returns the correlation ID, or undefined if the "sprequestguid" header was not found
         *
         * @beta
         */
        get: function () {
            if (!this._correlationId) {
                this._correlationId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].tryParse(this.headers.get("SPRequestGuid" /* SPRequestGuid */));
            }
            return this._correlationId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SPHttpClientResponse.prototype, "statusMessage", {
        /**
         * User-friendly status message that includes the HTTP status, with the correlation id and version of the server.
         * @alpha
         */
        get: function () {
            var correlationId = this.headers.get('sprequestguid') || '';
            var spVersion = this.headers.get('microsoftsharepointteamservices') || '';
            return "[HTTP]:" + this.status + " - " + this.statusText + " [CorrelationId]:" + correlationId + " [Version]:" + spVersion;
        },
        enumerable: true,
        configurable: true
    });
    return SPHttpClientResponse;
}(_httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (SPHttpClientResponse);


/***/ }),

/***/ "mXNH":
/*!********************************************************!*\
  !*** ./lib/oauthTokenProvider/MockAadTokenProvider.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SPHttpStrings.resx */ "WTVx");


/**
 * This class is an implementation of the AadTokenProvider in environments that AAD cannot be reached.
 *
 * @internal
 * @sealed
 */
var MockAadTokenProvider = /** @class */ (function () {
    function MockAadTokenProvider() {
        this._tokenAcquisitionEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](MockAadTokenProvider._tokenAcquisitionEventId);
    }
    /**
     * Returns a rejected promise for retrieving an AAD OAuth2 token.
     *
     * @param resourceEndpoint - the resource for which the token should be obtained
     * @param useCachedToken - Allows the developer to specify if cached tokens should be returned.
     * @returns A promise that will be fullfiled with the token or that will reject
     *          with an error message
     */
    MockAadTokenProvider.prototype.getToken = function (resourceEndpoint, useCachedToken) {
        return Promise.reject(new Error(_SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_1__["default"].servicePrincipalNotAvaliableError));
    };
    Object.defineProperty(MockAadTokenProvider.prototype, "tokenAcquisitionEvent", {
        /**
         * Notifies the developer when Token Acquistion requires user action.
         * @eventproperty
         * @beta
         */
        get: function () {
            return this._tokenAcquisitionEvent;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Token Acquisition Event String
     */
    MockAadTokenProvider._tokenAcquisitionEventId = 'tokenAcquisitionFailure';
    return MockAadTokenProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (MockAadTokenProvider);


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: HttpClient, HttpClientConfiguration, HttpClientResponse, DigestCache, SPHttpClient, SPHttpClientCommonConfiguration, SPHttpClientConfiguration, SPHttpClientResponse, SPHttpClientBatchConfiguration, SPHttpClientBatch, ODataVersion, OAuthTokenProvider, _AadTokenProviders, _AadConstants, _GraphHttpClient, _GraphHttpClientResponse, _GraphHttpClientConfiguration, _GraphHttpClientContext, AadTokenProvider, TokenAcquisitionEventArgs, AadHttpClient, AadHttpClientConfiguration, AadHttpClientFactory, AadTokenProviderFactory, MSGraphClient, MSGraphClientFactory, _AdalAuthContextManager, MsalTokenProvider, _cacheDataProviderServiceKey, _CacheManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./httpClient/HttpClient */ "LJZb");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HttpClient", function() { return _httpClient_HttpClient__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./httpClient/HttpClientConfiguration */ "zgJL");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HttpClientConfiguration", function() { return _httpClient_HttpClientConfiguration__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./httpClient/HttpClientResponse */ "0v/C");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HttpClientResponse", function() { return _httpClient_HttpClientResponse__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _spHttpClient_DigestCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./spHttpClient/DigestCache */ "Qacf");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DigestCache", function() { return _spHttpClient_DigestCache__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./spHttpClient/SPHttpClient */ "5q05");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClient", function() { return _spHttpClient_SPHttpClient__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./spHttpClient/SPHttpClientCommonConfiguration */ "ea2N");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClientCommonConfiguration", function() { return _spHttpClient_SPHttpClientCommonConfiguration__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./spHttpClient/SPHttpClientConfiguration */ "eGlh");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClientConfiguration", function() { return _spHttpClient_SPHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./spHttpClient/SPHttpClientResponse */ "mCft");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClientResponse", function() { return _spHttpClient_SPHttpClientResponse__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClientBatchConfiguration__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./spHttpClient/SPHttpClientBatchConfiguration */ "9UXQ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClientBatchConfiguration", function() { return _spHttpClient_SPHttpClientBatchConfiguration__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _spHttpClient_SPHttpClientBatch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./spHttpClient/SPHttpClientBatch */ "5emJ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SPHttpClientBatch", function() { return _spHttpClient_SPHttpClientBatch__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _spHttpClient_ODataVersion__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./spHttpClient/ODataVersion */ "GSEB");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ODataVersion", function() { return _spHttpClient_ODataVersion__WEBPACK_IMPORTED_MODULE_10__["default"]; });

/* harmony import */ var _oauthTokenProvider_OAuthTokenProvider__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./oauthTokenProvider/OAuthTokenProvider */ "21FS");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OAuthTokenProvider", function() { return _oauthTokenProvider_OAuthTokenProvider__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./oauthTokenProvider/AadTokenProviders */ "KkUw");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_AadTokenProviders", function() { return _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _oauthTokenProvider_AadConstants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./oauthTokenProvider/AadConstants */ "MGiw");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_AadConstants", function() { return _oauthTokenProvider_AadConstants__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _graphHttpClient_GraphHttpClient__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./graphHttpClient/GraphHttpClient */ "E9FO");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_GraphHttpClient", function() { return _graphHttpClient_GraphHttpClient__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/* harmony import */ var _graphHttpClient_GraphHttpClientResponse__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./graphHttpClient/GraphHttpClientResponse */ "BkXy");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_GraphHttpClientResponse", function() { return _graphHttpClient_GraphHttpClientResponse__WEBPACK_IMPORTED_MODULE_15__["default"]; });

/* harmony import */ var _graphHttpClient_GraphHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./graphHttpClient/GraphHttpClientConfiguration */ "kyCB");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_GraphHttpClientConfiguration", function() { return _graphHttpClient_GraphHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_16__["default"]; });

/* harmony import */ var _graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./graphHttpClient/GraphHttpClientContext */ "iDX0");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_GraphHttpClientContext", function() { return _graphHttpClient_GraphHttpClientContext__WEBPACK_IMPORTED_MODULE_17__["default"]; });

/* harmony import */ var _oauthTokenProvider_AadTokenProvider__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./oauthTokenProvider/AadTokenProvider */ "jtSf");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AadTokenProvider", function() { return _oauthTokenProvider_AadTokenProvider__WEBPACK_IMPORTED_MODULE_18__["default"]; });

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

/* harmony import */ var _aadHttpClient_AadHttpClient__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./aadHttpClient/AadHttpClient */ "81oh");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AadHttpClient", function() { return _aadHttpClient_AadHttpClient__WEBPACK_IMPORTED_MODULE_19__["default"]; });

/* harmony import */ var _aadHttpClient_AadHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./aadHttpClient/AadHttpClientConfiguration */ "BCL6");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AadHttpClientConfiguration", function() { return _aadHttpClient_AadHttpClientConfiguration__WEBPACK_IMPORTED_MODULE_20__["default"]; });

/* harmony import */ var _aadHttpClient_AadHttpClientFactory__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./aadHttpClient/AadHttpClientFactory */ "rE/9");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AadHttpClientFactory", function() { return _aadHttpClient_AadHttpClientFactory__WEBPACK_IMPORTED_MODULE_21__["default"]; });

/* harmony import */ var _oauthTokenProvider_AadTokenProviderFactory__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./oauthTokenProvider/AadTokenProviderFactory */ "3H3x");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AadTokenProviderFactory", function() { return _oauthTokenProvider_AadTokenProviderFactory__WEBPACK_IMPORTED_MODULE_22__["default"]; });

/* harmony import */ var _msGraphClient_MSGraphClient__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./msGraphClient/MSGraphClient */ "bLht");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MSGraphClient", function() { return _msGraphClient_MSGraphClient__WEBPACK_IMPORTED_MODULE_23__["default"]; });

/* harmony import */ var _msGraphClient_MSGraphClientFactory__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./msGraphClient/MSGraphClientFactory */ "uti6");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MSGraphClientFactory", function() { return _msGraphClient_MSGraphClientFactory__WEBPACK_IMPORTED_MODULE_24__["default"]; });

/* harmony import */ var _oauthTokenProvider_AdalAuthContextManager__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./oauthTokenProvider/AdalAuthContextManager */ "0UKY");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_AdalAuthContextManager", function() { return _oauthTokenProvider_AdalAuthContextManager__WEBPACK_IMPORTED_MODULE_25__["default"]; });

/* harmony import */ var _oauthTokenProvider_MsalTokenProvider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./oauthTokenProvider/MsalTokenProvider */ "SFYc");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MsalTokenProvider", function() { return _oauthTokenProvider_MsalTokenProvider__WEBPACK_IMPORTED_MODULE_26__["MsalTokenProvider"]; });

/* harmony import */ var _caching_CacheDataProviderService__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./caching/CacheDataProviderService */ "Pac7");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_cacheDataProviderServiceKey", function() { return _caching_CacheDataProviderService__WEBPACK_IMPORTED_MODULE_27__["cacheDataProviderServiceKey"]; });

/* harmony import */ var _caching_CacheManager__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./caching/CacheManager */ "pueB");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_CacheManager", function() { return _caching_CacheManager__WEBPACK_IMPORTED_MODULE_28__["CacheManager"]; });

/**
 * Base communication layer for the SharePoint Framework
 *
 * @remarks
 * This package defines the base communication layer for
 * the SharePoint Framework.  For REST calls, it handles authentication,
 * logging, diagnostics, and batching.  It also simplifies requests by
 * adding default headers that follow the recommended best practices.
 *
 * @packagedocumentation
 */































/***/ }),

/***/ "nOSL":
/*!*********************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/libraries/sp-client-shared/lib/tokenUtility/OAuthUtilityError.js ***!
  \*********************************************************************************************/
/*! exports provided: OAuthUtilityErrorType, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OAuthUtilityErrorType", function() { return OAuthUtilityErrorType; });
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
/**
 * OAuthUtilityError can have one of the types mentioned in this enum.
 *
 * @alpha
 */
var OAuthUtilityErrorType;
(function (OAuthUtilityErrorType) {
    /**
     * unknownError usually means that the http status in the response was neither 400 (server error)
     * or 429 (throttling).
     */
    OAuthUtilityErrorType[OAuthUtilityErrorType["unknownError"] = 0] = "unknownError";
    /**
     * malformedResponseBody means that the response that was received (either the success or the error)
     * could not be parsed. This may happen if the server response had it's format changed and the format
     * expected by the library needs to be updated.
     */
    OAuthUtilityErrorType[OAuthUtilityErrorType["malformedResponseBody"] = 1] = "malformedResponseBody";
    /**
     * serverError means that the server responded with an error. The serverErrorCode is set in this case,
     * and it can be used to identify the reason of the error.
     *
     * @privateRemarks
     * The server-side error codes are defined in the class SPDelegationTokenServiceProviderErrorCodes.
     */
    OAuthUtilityErrorType[OAuthUtilityErrorType["serverError"] = 2] = "serverError";
})(OAuthUtilityErrorType || (OAuthUtilityErrorType = {}));
/**
 * Error returned by the rejected promise
 *
 * @alpha
 */
var OAuthUtilityError = /** @class */ (function (_super) {
    __extends(OAuthUtilityError, _super);
    function OAuthUtilityError(type, context) {
        var _this = _super.call(this, context.message) || this;
        // Manually set the prototype, as we can no longer extend built-in classes like Error, Array, Map, etc
        // tslint:disable-next-line:max-line-length
        // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
        //
        // Note: the prototype must also be set on any classes which extend this one
        _this.__proto__ = OAuthUtilityError.prototype; // tslint:disable-line:no-any
        _this._type = type;
        _this._httpResponseStatus = context.httpResponseStatus;
        _this._cultureName = context.cultureName;
        _this._message = context.message;
        _this._serverErrorCode = context.serverErrorCode;
        _this._correlationId = context.correlationId;
        _this._redirectUrl = context.redirectUrl;
        return _this;
    }
    Object.defineProperty(OAuthUtilityError.prototype, "type", {
        /**
         * @returns the type of the error. Can be unknownError | malformedResponseBody | serverError
         */
        get: function () {
            return this._type;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "serverErrorCode", {
        /**
         * serverErrorCode is set only if the type of the OAuthUtilityError containing this object
         * is serverError.
         * Server error codes are defined in the SPDelegationTokenServiceProviderErrorCodes class
         *
         * @returns server error code. If the error is not of serverError type this method throws
         */
        get: function () {
            if (this.type !== OAuthUtilityErrorType.serverError) {
                throw new Error('ServerErrorCode can only be obtained for errors of type serverError');
            }
            return this._serverErrorCode;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "httpResponseStatus", {
        /**
         * @returns status of the http response (200, 404, etc)
         */
        get: function () {
            return this._httpResponseStatus;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "message", {
        /**
         * @returns the error message
         */
        get: function () {
            return this._message;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "cultureName", {
        /**
         * @returns the language tag of the error message (ex: en-US)
         */
        get: function () {
            return this._cultureName;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "correlationId", {
        /**
         * @returns correlation identifier associated with the server request that caused the error.
         */
        get: function () {
            return this._correlationId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OAuthUtilityError.prototype, "redirectUrl", {
        /**
         * @returns redirect url to re-authentication page
         */
        get: function () {
            return this._redirectUrl;
        },
        enumerable: true,
        configurable: true
    });
    return OAuthUtilityError;
}(Error));
/* harmony default export */ __webpack_exports__["default"] = (OAuthUtilityError);


/***/ }),

/***/ "nUPw":
/*!***************************************************!*\
  !*** ./lib/oauthTokenProvider/AadErrorHandler.js ***!
  \***************************************************/
/*! exports provided: AadErrorHandler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AadErrorHandler", function() { return AadErrorHandler; });
/* harmony import */ var _AadTokenProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AadTokenProvider */ "jtSf");
/* harmony import */ var _AadConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AadConstants */ "MGiw");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SPHttpStrings.resx */ "WTVx");




var AadErrorHandler = /** @class */ (function () {
    function AadErrorHandler() {
    }
    /**
     * This function will fire an event if the AAD error code can be resolved with a full page redirect.
     */
    AadErrorHandler._handleInteractionRequiredFailuresOld = function (authContext, errorMessage, resource) {
        var urlNavigate = authContext._getNavigateUrl(authContext.RESPONSE_TYPE.TOKEN, resource) +
            '&prompt=select_account';
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.raiseEvent(_AadTokenProvider__WEBPACK_IMPORTED_MODULE_0__["default"]._tokenAcquisitionEventId, new _AadTokenProvider__WEBPACK_IMPORTED_MODULE_0__["TokenAcquisitionEventArgs"](_SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_3__["default"].additionalCredentialsWarning, urlNavigate));
    };
    /**
     * This function will fire an event if the AAD error code can be resolved with a full page redirect.
     */
    AadErrorHandler._handleInteractionRequiredFailures = function (authContext, errorMessage, resource) {
        // Don't prompt for interaction if the end user cannot resolve this failure.
        if (!AadErrorHandler._doesAadErrorCodeExist(errorMessage, _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].UNRESOLVABLE_AAD_ERROR_CODES)) {
            _AadConstants__WEBPACK_IMPORTED_MODULE_1__["default"].RESOLVABLE_ERROR_CODES.forEach(function (errorCode) {
                if (errorMessage.indexOf(errorCode) > -1) {
                    var urlNavigate = authContext._getNavigateUrl(authContext.RESPONSE_TYPE.TOKEN, resource) +
                        '&prompt=select_account';
                    _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__["_SPEventManager"].instance.raiseEvent(_AadTokenProvider__WEBPACK_IMPORTED_MODULE_0__["default"]._tokenAcquisitionEventId, new _AadTokenProvider__WEBPACK_IMPORTED_MODULE_0__["TokenAcquisitionEventArgs"](_SPHttpStrings_resx__WEBPACK_IMPORTED_MODULE_3__["default"].additionalCredentialsWarning, urlNavigate));
                }
            });
        }
    };
    /**
     * Returns true if an AAD Error Code exists in the error message.
     */
    AadErrorHandler._doesAadErrorCodeExist = function (errorMessage, setOfErrorCodes) {
        // AAD error messages use the following pattern. 'ErrorCode: ErrorMessage'. AAD errors can have multiple
        // error codes.
        var errorCodes = errorMessage.match(/(AADSTS)[0-9]+/g) || [];
        for (var _i = 0, errorCodes_1 = errorCodes; _i < errorCodes_1.length; _i++) {
            var errorCode = errorCodes_1[_i];
            if (setOfErrorCodes.has(errorCode)) {
                return true;
            }
        }
        return false;
    };
    return AadErrorHandler;
}());



/***/ }),

/***/ "nv8F":
/*!*********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/tslib/1.9.3/node_modules/tslib/tslib.es6.js ***!
  \*********************************************************************************************************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (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__, "__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)
            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 __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 };
}


/***/ }),

/***/ "pueB":
/*!*************************************!*\
  !*** ./lib/caching/CacheManager.js ***!
  \*************************************/
/*! exports provided: CacheManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CacheManager", function() { return CacheManager; });
/**
 * Cache Manager for http Requests
 *
 * @internal
 */
var CacheManager = /** @class */ (function () {
    function CacheManager() {
    }
    /**
     * Fetches latest data from server or cache. Updates the cache from server if needed.
     * @param cacheKey - The cache Key
     * @param cacheProvider - The cache Provider
     * @param cacheStrategy - The Cache Strategy
     * @param serverFetch - The server fetch call
     * @param serverFetchArgs - The arguments to be used on the server fetch call
     */
    CacheManager.fetchAndCache = function (cacheKey, /* tslint:disable-line:no-any */ cacheProvider, cacheConfiguration, serverFetch) {
        var cacheStrategy = cacheConfiguration.cacheStrategy, refreshInterval = cacheConfiguration.refreshInterval;
        // 3rd party default behavior - If cacheStrategy is undefined
        if (!cacheStrategy) {
            return cacheProvider.getData(cacheKey, refreshInterval).then(function (data) {
                if (data) {
                    return Promise.resolve(data).catch(function (a) { return a; });
                }
                // Cache Miss, update cache with serverData
                /* tslint:disable:error no-floating-promises */
                return serverFetch().then(function (response) {
                    if (response.clone) {
                        CacheManager._updateCache(cacheKey, cacheProvider, response.clone());
                    }
                    return response;
                });
            });
        }
        // First Party Caching Strategies
        var cachableResponse = CacheManager._applyCacheStrategy(cacheKey, cacheProvider, cacheConfiguration, serverFetch);
        return Promise.resolve(cachableResponse);
    };
    CacheManager._applyCacheStrategy = function (cacheKey, /* tslint:disable-line:no-any */ cacheProvider, cacheConfiguration, serverFetch) {
        var cacheStrategy = cacheConfiguration.cacheStrategy, refreshInterval = cacheConfiguration.refreshInterval;
        var cachableResponse = {
            cachedResponse: undefined,
            serverResponse: undefined
        };
        if (cacheStrategy === 1 /* CacheOnly */ || cacheStrategy === 2 /* CacheAndNetwork */) {
            cachableResponse.cachedResponse = cacheProvider.getData(cacheKey, refreshInterval);
        }
        if (cacheStrategy === 0 /* NetworkOnly */ || cacheStrategy === 2 /* CacheAndNetwork */) {
            cachableResponse.serverResponse = serverFetch().then(function (response) {
                if (response.clone) {
                    CacheManager._updateCache(cacheKey, cacheProvider, response.clone());
                }
                return response;
            });
        }
        return cachableResponse;
    };
    CacheManager._updateCache = function (cacheKey, /* tslint:disable-line:no-any */ cacheProvider, response) {
        // Only update the cache if the server response is valid
        if (response.status >= 200 && response.status < 300) {
            response.json().then(function (freshData) {
                if (freshData) {
                    // Update the cache when there is fresh data available from the server
                    setTimeout(function () { return cacheProvider.setData(cacheKey, freshData); }, 0);
                }
            });
        }
    };
    return CacheManager;
}());



/***/ }),

/***/ "rE/9":
/*!***************************************************!*\
  !*** ./lib/aadHttpClient/AadHttpClientFactory.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../oauthTokenProvider/AadTokenProviders */ "KkUw");
/* harmony import */ var _AadHttpClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AadHttpClient */ "81oh");



/**
 * Returns a preinitialized version of the AadHttpClient for a given resource url.
 * For more information: {@link https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient}
 *
 * @public
 */
var AadHttpClientFactory = /** @class */ (function () {
    /**
     * @internal
     */
    function AadHttpClientFactory(serviceScope) {
        this._serviceScope = serviceScope;
    }
    /**
     * Returns an instance of the AadHttpClient that communicates with the current tenant's configurable
     * Service Principal.
     * @param resourceEndpoint - The target AAD application's resource endpoint.
     */
    AadHttpClientFactory.prototype.getClient = function (resourceEndpoint) {
        return Promise.resolve(new _AadHttpClient__WEBPACK_IMPORTED_MODULE_2__["default"](this._serviceScope, resourceEndpoint));
    };
    /**
     * Returns an instance of the AadHttpClient that communicates with the preconfigured
     * Service Principal.
     * @param resourceEndpoint - The target AAD application's resource endpoint.
     * @internal
     */
    AadHttpClientFactory.prototype._getStandardClient = function (resourceEndpoint) {
        return Promise.resolve(new _AadHttpClient__WEBPACK_IMPORTED_MODULE_2__["default"](this._serviceScope, resourceEndpoint, { configuration: _oauthTokenProvider_AadTokenProviders__WEBPACK_IMPORTED_MODULE_1__["default"].preAuthorizedConfiguration }));
    };
    /**
     * The service key for AadHttpClientFactory.
     */
    AadHttpClientFactory.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:AadHttpClientFactory', AadHttpClientFactory);
    return AadHttpClientFactory;
}());
/* harmony default export */ __webpack_exports__["default"] = (AadHttpClientFactory);


/***/ }),

/***/ "uojq":
/*!*************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/libraries/sp-client-shared/lib/tokenUtility/Constants.js ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var Constants = /** @class */ (function () {
    function Constants() {
    }
    /**
     * This id is used to get / persist the token cache into session storage.
     * It is passed to window.sessionStorage.setItem(id, item) / getItem(id)
     */
    Constants.tokenCacheSessionStorageId = 'tokenCache';
    /**
     * If the token is about to expire, a new one will be requested.
     * A token is considered "about to expire" if:
     * (tokenExpirationTime - currentTime) < aboutToExpireIntervalSeconds
     */
    Constants.aboutToExpireIntervalSeconds = 600;
    /**
     * The token will be requested from this URL
     */
    Constants.apiUrl = '/_api/SP.OAuth.Token/Acquire';
    /**
     * Number of times to retry the server request in the case of a retriable error
     */
    Constants.retries = 3;
    /**
     * If an error from this list would be encountered then the request would be retried
     * for Constants.retries times.
     *
     * This list MUST always be kept in sync with the server-side error codes
     * A better alternative would be to have the server send a boolean shouldRetry flag
     *
     * The server-side error codes are defined in the class SPDelegationTokenServiceProviderErrorCodes
     */
    Constants.retriableErrorCodes = [
        /* Internal server error */
        10006,
        /* Unsupported Token */
        10008
    ];
    /**
     * An exception with this message will be thrown if the error code from the response
     * does not have the expected format described bellow
     */
    Constants.unexpectedErrorCodeFormat = 'Expected error code format is <numericCode>, <exception class name>';
    /**
     * An exception with the message will be thrown if the token couldn't be parsed from the response
     */
    Constants.unexpectedTokenMessageFormat = 'Your token request succeedeed but the token could not be parsed from the response.' +
        'This is most probably caused by a change in the server response format';
    /**
     * The version is used to assure unicity in the session storage keys used
     * used by the TokenUtility.
     */
    Constants.npmPackageVersion = '0.1.5';
    return Constants;
}());
/* harmony default export */ __webpack_exports__["default"] = (Constants);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "uti6":
/*!***************************************************!*\
  !*** ./lib/msGraphClient/MSGraphClientFactory.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _MSGraphClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MSGraphClient */ "bLht");


/**
 * Returns a preinitialized version of the MSGraphClient.
 * For more information: {@link https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-msgraph}
 *
 * @public
 */
var MSGraphClientFactory = /** @class */ (function () {
    /**
     * @param serviceScope - Provides services for the MSGraphClient to consume.
     *
     * @internal
     */
    function MSGraphClientFactory(serviceScope) {
        this._serviceScope = serviceScope;
    }
    /**
     * Returns an instance of the MSGraphClient that communicates with the current tenant's configurable
     * Service Principal.
     */
    MSGraphClientFactory.prototype.getClient = function () {
        var _this = this;
        /* tslint:disable:next-line no-any */
        if (!_MSGraphClient__WEBPACK_IMPORTED_MODULE_1__["default"]._instance) {
            /* tslint:disable:next-line max-line-length */
            return __webpack_require__.e(/*! import() | sp-http-msgraphclient */ "vendors~sp-http-msgraphclient").then(__webpack_require__.t.bind(null, /*! @microsoft/microsoft-graph-client/lib/graph-js-sdk-web */ "SSvn", 7))
                .then(function () {
                return new _MSGraphClient__WEBPACK_IMPORTED_MODULE_1__["default"](_this._serviceScope);
            });
        }
        else {
            return Promise.resolve(new _MSGraphClient__WEBPACK_IMPORTED_MODULE_1__["default"](this._serviceScope));
        }
    };
    /**
     * The service key for MSGraphClientFactory.
     */
    MSGraphClientFactory.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-http:MSGraphClientFactory', MSGraphClientFactory);
    return MSGraphClientFactory;
}());
/* harmony default export */ __webpack_exports__["default"] = (MSGraphClientFactory);


/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "zgJL":
/*!***************************************************!*\
  !*** ./lib/httpClient/HttpClientConfiguration.js ***!
  \***************************************************/
/*! exports provided: default, predefinedConfigurations */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "predefinedConfigurations", function() { return predefinedConfigurations; });
/**
 * Configuration for HttpClient.
 *
 * @remarks
 * The HttpClientConfiguration object provides a set of switches for enabling/disabling
 * various features of the HttpClient class.  Normally these switches are set
 * (e.g. when calling HttpClient.fetch()) by providing one of the predefined defaults
 * from HttpClientConfigurations, however switches can also be changed via the
 * HttpClientConfiguration.overrideWith() method.
 *
 * @public
 */
var HttpClientConfiguration = /** @class */ (function () {
    /**
     * Constructs a new instance of HttpClientConfiguration with the specified flags.
     * The default values will be used for any flags that are missing or undefined.
     * If overrideFlags is specified, it takes precedence over flags.
     */
    function HttpClientConfiguration(flags, overrideFlags) {
        this.flags = {};
        this.initializeFlags();
        this._mergeFlags(flags);
        if (overrideFlags) {
            this._mergeFlags(overrideFlags);
        }
    }
    /**
     * Child classes should override this method to construct the child class type,
     * rather than the base class type.
     * @virtual
     */
    HttpClientConfiguration.prototype.overrideWith = function (sourceFlags) {
        return new HttpClientConfiguration(this.flags, sourceFlags);
    };
    /**
     * Child classes should override this method to initialize the flags object.
     * @virtual
     */
    HttpClientConfiguration.prototype.initializeFlags = function () {
        // Empty Block
    };
    HttpClientConfiguration.prototype._mergeFlags = function (source) {
        for (var _i = 0, _a = Object.keys(this.flags); _i < _a.length; _i++) {
            var key = _a[_i];
            if (source.hasOwnProperty(key)) {
                if (source[key] !== undefined) {
                    this.flags[key] = source[key];
                }
            }
        }
    };
    return HttpClientConfiguration;
}());
/* harmony default export */ __webpack_exports__["default"] = (HttpClientConfiguration);
var predefinedConfigurations = {
    v1: new HttpClientConfiguration({})
};


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-http_en-us.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d_16.8.5", [], function() { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "04mm":
/*!*************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.6.0/node_modules/prop-types/checkPropTypes.js ***!
  \*************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



if (true) {
  var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "ypis");
  var warning = __webpack_require__(/*! fbjs/lib/warning */ "Q+bF");
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "DVb/");
  var loggedTypeFailures = {};
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (typeSpecs.hasOwnProperty(typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
        }
      }
    }
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "1FaY":
/*!********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/create-react-class/15.6.3/node_modules/create-react-class/index.js ***!
  \********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */



var React = __webpack_require__(/*! react */ "3wdl");
var factory = __webpack_require__(/*! ./factory */ "U8ve");

if (typeof React === 'undefined') {
  throw Error(
    'create-react-class could not find the React object. If you are using script tags, ' +
      'make sure that React is being loaded before create-react-class.'
  );
}

// Hack to grab NoopUpdateQueue from isomorphic React
var ReactNoopUpdateQueue = new React.Component().updater;

module.exports = factory(
  React.Component,
  React.isValidElement,
  ReactNoopUpdateQueue
);


/***/ }),

/***/ "2Jnp":
/*!**********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.6.0/node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ "xvdx");
var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "ypis");
var warning = __webpack_require__(/*! fbjs/lib/warning */ "Q+bF");
var assign = __webpack_require__(/*! object-assign */ "sjay");

var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "DVb/");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "04mm");

module.exports = function(isValidElement, throwOnDirectAccess) {
  /* global Symbol */
  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

  /**
   * Returns the iterator method function contained on the iterable object.
   *
   * Be sure to invoke the function with the iterable as context:
   *
   *     var iteratorFn = getIteratorFn(myIterable);
   *     if (iteratorFn) {
   *       var iterator = iteratorFn.call(myIterable);
   *       ...
   *     }
   *
   * @param {?object} maybeIterable
   * @return {?function}
   */
  function getIteratorFn(maybeIterable) {
    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  /**
   * Collection of methods that allow declaration and validation of props that are
   * supplied to React components. Example usage:
   *
   *   var Props = require('ReactPropTypes');
   *   var MyArticle = React.createClass({
   *     propTypes: {
   *       // An optional string prop named "description".
   *       description: Props.string,
   *
   *       // A required enum prop named "category".
   *       category: Props.oneOf(['News','Photos']).isRequired,
   *
   *       // A prop named "dialog" that requires an instance of Dialog.
   *       dialog: Props.instanceOf(Dialog).isRequired
   *     },
   *     render: function() { ... }
   *   });
   *
   * A more formal specification of how these methods are used:
   *
   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
   *   decl := ReactPropTypes.{type}(.isRequired)?
   *
   * Each and every declaration produces a function with the same signature. This
   * allows the creation of custom validation functions. For example:
   *
   *  var MyLink = React.createClass({
   *    propTypes: {
   *      // An optional string or URI prop named "href".
   *      href: function(props, propName, componentName) {
   *        var propValue = props[propName];
   *        if (propValue != null && typeof propValue !== 'string' &&
   *            !(propValue instanceof URI)) {
   *          return new Error(
   *            'Expected a string or an URI for ' + propName + ' in ' +
   *            componentName
   *          );
   *        }
   *      }
   *    },
   *    render: function() {...}
   *  });
   *
   * @internal
   */

  var ANONYMOUS = '<<anonymous>>';

  // Important!
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  var ReactPropTypes = {
    array: createPrimitiveTypeChecker('array'),
    bool: createPrimitiveTypeChecker('boolean'),
    func: createPrimitiveTypeChecker('function'),
    number: createPrimitiveTypeChecker('number'),
    object: createPrimitiveTypeChecker('object'),
    string: createPrimitiveTypeChecker('string'),
    symbol: createPrimitiveTypeChecker('symbol'),

    any: createAnyTypeChecker(),
    arrayOf: createArrayOfTypeChecker,
    element: createElementTypeChecker(),
    instanceOf: createInstanceTypeChecker,
    node: createNodeChecker(),
    objectOf: createObjectOfTypeChecker,
    oneOf: createEnumTypeChecker,
    oneOfType: createUnionTypeChecker,
    shape: createShapeTypeChecker,
    exact: createStrictShapeTypeChecker,
  };

  /**
   * inlined Object.is polyfill to avoid requiring consumers ship their own
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
   */
  /*eslint-disable no-self-compare*/
  function is(x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  }
  /*eslint-enable no-self-compare*/

  /**
   * We use an Error-like object for backward compatibility as people may call
   * PropTypes directly and inspect their output. However, we don't use real
   * Errors anymore. We don't inspect their stack anyway, and creating them
   * is prohibitively expensive if they are created too often, such as what
   * happens in oneOfType() for any type before the one that matched.
   */
  function PropTypeError(message) {
    this.message = message;
    this.stack = '';
  }
  // Make `instanceof Error` still work for returned errors.
  PropTypeError.prototype = Error.prototype;

  function createChainableTypeChecker(validate) {
    if (true) {
      var manualPropTypeCallCache = {};
      var manualPropTypeWarningCount = 0;
    }
    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
      componentName = componentName || ANONYMOUS;
      propFullName = propFullName || propName;

      if (secret !== ReactPropTypesSecret) {
        if (throwOnDirectAccess) {
          // New behavior only for users of `prop-types` package
          invariant(
            false,
            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
            'Use `PropTypes.checkPropTypes()` to call them. ' +
            'Read more at http://fb.me/use-check-prop-types'
          );
        } else if ( true && typeof console !== 'undefined') {
          // Old behavior for people using React.PropTypes
          var cacheKey = componentName + ':' + propName;
          if (
            !manualPropTypeCallCache[cacheKey] &&
            // Avoid spamming the console because they are often not actionable except for lib authors
            manualPropTypeWarningCount < 3
          ) {
            warning(
              false,
              'You are manually calling a React.PropTypes validation ' +
              'function for the `%s` prop on `%s`. This is deprecated ' +
              'and will throw in the standalone `prop-types` package. ' +
              'You may be seeing this warning due to a third-party PropTypes ' +
              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
              propFullName,
              componentName
            );
            manualPropTypeCallCache[cacheKey] = true;
            manualPropTypeWarningCount++;
          }
        }
      }
      if (props[propName] == null) {
        if (isRequired) {
          if (props[propName] === null) {
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
          }
          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
        }
        return null;
      } else {
        return validate(props, propName, componentName, location, propFullName);
      }
    }

    var chainedCheckType = checkType.bind(null, false);
    chainedCheckType.isRequired = checkType.bind(null, true);

    return chainedCheckType;
  }

  function createPrimitiveTypeChecker(expectedType) {
    function validate(props, propName, componentName, location, propFullName, secret) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== expectedType) {
        // `propValue` being instance of, say, date/regexp, pass the 'object'
        // check, but we can offer a more precise error message here rather than
        // 'of type `object`'.
        var preciseType = getPreciseType(propValue);

        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createAnyTypeChecker() {
    return createChainableTypeChecker(emptyFunction.thatReturnsNull);
  }

  function createArrayOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
      }
      var propValue = props[propName];
      if (!Array.isArray(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
      }
      for (var i = 0; i < propValue.length; i++) {
        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
        if (error instanceof Error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!isValidElement(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createInstanceTypeChecker(expectedClass) {
    function validate(props, propName, componentName, location, propFullName) {
      if (!(props[propName] instanceof expectedClass)) {
        var expectedClassName = expectedClass.name || ANONYMOUS;
        var actualClassName = getClassName(props[propName]);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createEnumTypeChecker(expectedValues) {
    if (!Array.isArray(expectedValues)) {
       true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : undefined;
      return emptyFunction.thatReturnsNull;
    }

    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      for (var i = 0; i < expectedValues.length; i++) {
        if (is(propValue, expectedValues[i])) {
          return null;
        }
      }

      var valuesString = JSON.stringify(expectedValues);
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createObjectOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
      }
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
      }
      for (var key in propValue) {
        if (propValue.hasOwnProperty(key)) {
          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createUnionTypeChecker(arrayOfTypeCheckers) {
    if (!Array.isArray(arrayOfTypeCheckers)) {
       true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;
      return emptyFunction.thatReturnsNull;
    }

    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (typeof checker !== 'function') {
        warning(
          false,
          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
          'received %s at index %s.',
          getPostfixForTypeWarning(checker),
          i
        );
        return emptyFunction.thatReturnsNull;
      }
    }

    function validate(props, propName, componentName, location, propFullName) {
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
          return null;
        }
      }

      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createNodeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      if (!isNode(props[propName])) {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      for (var key in shapeTypes) {
        var checker = shapeTypes[key];
        if (!checker) {
          continue;
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createStrictShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      // We need to check all keys in case some are required but missing from
      // props.
      var allKeys = assign({}, props[propName], shapeTypes);
      for (var key in allKeys) {
        var checker = shapeTypes[key];
        if (!checker) {
          return new PropTypeError(
            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
          );
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }

    return createChainableTypeChecker(validate);
  }

  function isNode(propValue) {
    switch (typeof propValue) {
      case 'number':
      case 'string':
      case 'undefined':
        return true;
      case 'boolean':
        return !propValue;
      case 'object':
        if (Array.isArray(propValue)) {
          return propValue.every(isNode);
        }
        if (propValue === null || isValidElement(propValue)) {
          return true;
        }

        var iteratorFn = getIteratorFn(propValue);
        if (iteratorFn) {
          var iterator = iteratorFn.call(propValue);
          var step;
          if (iteratorFn !== propValue.entries) {
            while (!(step = iterator.next()).done) {
              if (!isNode(step.value)) {
                return false;
              }
            }
          } else {
            // Iterator will provide entry [k,v] tuples rather than values.
            while (!(step = iterator.next()).done) {
              var entry = step.value;
              if (entry) {
                if (!isNode(entry[1])) {
                  return false;
                }
              }
            }
          }
        } else {
          return false;
        }

        return true;
      default:
        return false;
    }
  }

  function isSymbol(propType, propValue) {
    // Native Symbol.
    if (propType === 'symbol') {
      return true;
    }

    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
    if (propValue['@@toStringTag'] === 'Symbol') {
      return true;
    }

    // Fallback for non-spec compliant Symbols which are polyfilled.
    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
      return true;
    }

    return false;
  }

  // Equivalent of `typeof` but with special handling for array and regexp.
  function getPropType(propValue) {
    var propType = typeof propValue;
    if (Array.isArray(propValue)) {
      return 'array';
    }
    if (propValue instanceof RegExp) {
      // Old webkits (at least until Android 4.0) return 'function' rather than
      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
      // passes PropTypes.object.
      return 'object';
    }
    if (isSymbol(propType, propValue)) {
      return 'symbol';
    }
    return propType;
  }

  // This handles more types than `getPropType`. Only used for error messages.
  // See `createPrimitiveTypeChecker`.
  function getPreciseType(propValue) {
    if (typeof propValue === 'undefined' || propValue === null) {
      return '' + propValue;
    }
    var propType = getPropType(propValue);
    if (propType === 'object') {
      if (propValue instanceof Date) {
        return 'date';
      } else if (propValue instanceof RegExp) {
        return 'regexp';
      }
    }
    return propType;
  }

  // Returns a string that is postfixed to a warning about an invalid type.
  // For example, "undefined" or "of type array"
  function getPostfixForTypeWarning(value) {
    var type = getPreciseType(value);
    switch (type) {
      case 'array':
      case 'object':
        return 'an ' + type;
      case 'boolean':
      case 'date':
      case 'regexp':
        return 'a ' + type;
      default:
        return type;
    }
  }

  // Returns class name of the object, if any.
  function getClassName(propValue) {
    if (!propValue.constructor || !propValue.constructor.name) {
      return ANONYMOUS;
    }
    return propValue.constructor.name;
  }

  ReactPropTypes.checkPropTypes = checkPropTypes;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ "3wdl":
/*!******************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/react/16.8.5/node_modules/react/index.js ***!
  \******************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ "8En3");
}


/***/ }),

/***/ "8En3":
/*!**********************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/react/16.8.5/node_modules/react/cjs/react.development.js ***!
  \**********************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.8.5
 * react.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

var _assign = __webpack_require__(/*! object-assign */ "sjay");
var checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ "jvHV");

// TODO: this is special because it gets imported during build.

var ReactVersion = '16.8.5';

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;

var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;

var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;

var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';

function getIteratorFn(maybeIterable) {
  if (maybeIterable === null || typeof maybeIterable !== 'object') {
    return null;
  }
  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
  if (typeof maybeIterator === 'function') {
    return maybeIterator;
  }
  return null;
}

/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var validateFormat = function () {};

{
  validateFormat = function (format) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  };
}

function invariant(condition, format, a, b, c, d, e, f) {
  validateFormat(format);

  if (!condition) {
    var error = void 0;
    if (format === undefined) {
      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(format.replace(/%s/g, function () {
        return args[argIndex++];
      }));
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
}

// Relying on the `invariant()` implementation lets us
// preserve the format and params in the www builds.

/**
 * Forked from fbjs/warning:
 * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
 *
 * Only change is we use console.warn instead of console.error,
 * and do nothing when 'console' is not supported.
 * This really simplifies the code.
 * ---
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var lowPriorityWarning = function () {};

{
  var printWarning = function (format) {
    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }

    var argIndex = 0;
    var message = 'Warning: ' + format.replace(/%s/g, function () {
      return args[argIndex++];
    });
    if (typeof console !== 'undefined') {
      console.warn(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };

  lowPriorityWarning = function (condition, format) {
    if (format === undefined) {
      throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');
    }
    if (!condition) {
      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
        args[_key2 - 2] = arguments[_key2];
      }

      printWarning.apply(undefined, [format].concat(args));
    }
  };
}

var lowPriorityWarning$1 = lowPriorityWarning;

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warningWithoutStack = function () {};

{
  warningWithoutStack = function (condition, format) {
    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }

    if (format === undefined) {
      throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');
    }
    if (args.length > 8) {
      // Check before the condition to catch violations early.
      throw new Error('warningWithoutStack() currently supports at most 8 arguments.');
    }
    if (condition) {
      return;
    }
    if (typeof console !== 'undefined') {
      var argsWithFormat = args.map(function (item) {
        return '' + item;
      });
      argsWithFormat.unshift('Warning: ' + format);

      // We intentionally don't use spread (or .apply) directly because it
      // breaks IE9: https://github.com/facebook/react/issues/13610
      Function.prototype.apply.call(console.error, console, argsWithFormat);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      var argIndex = 0;
      var message = 'Warning: ' + format.replace(/%s/g, function () {
        return args[argIndex++];
      });
      throw new Error(message);
    } catch (x) {}
  };
}

var warningWithoutStack$1 = warningWithoutStack;

var didWarnStateUpdateForUnmountedComponent = {};

function warnNoop(publicInstance, callerName) {
  {
    var _constructor = publicInstance.constructor;
    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
    var warningKey = componentName + '.' + callerName;
    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
      return;
    }
    warningWithoutStack$1(false, "Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);
    didWarnStateUpdateForUnmountedComponent[warningKey] = true;
  }
}

/**
 * This is the abstract API for an update queue.
 */
var ReactNoopUpdateQueue = {
  /**
   * Checks whether or not this composite component is mounted.
   * @param {ReactClass} publicInstance The instance we want to test.
   * @return {boolean} True if mounted, false otherwise.
   * @protected
   * @final
   */
  isMounted: function (publicInstance) {
    return false;
  },

  /**
   * Forces an update. This should only be invoked when it is known with
   * certainty that we are **not** in a DOM transaction.
   *
   * You may want to call this when you know that some deeper aspect of the
   * component's state has changed but `setState` was not called.
   *
   * This will not invoke `shouldComponentUpdate`, but it will invoke
   * `componentWillUpdate` and `componentDidUpdate`.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {?function} callback Called after component is updated.
   * @param {?string} callerName name of the calling function in the public API.
   * @internal
   */
  enqueueForceUpdate: function (publicInstance, callback, callerName) {
    warnNoop(publicInstance, 'forceUpdate');
  },

  /**
   * Replaces all of the state. Always use this or `setState` to mutate state.
   * You should treat `this.state` as immutable.
   *
   * There is no guarantee that `this.state` will be immediately updated, so
   * accessing `this.state` after calling this method may return the old value.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} completeState Next state.
   * @param {?function} callback Called after component is updated.
   * @param {?string} callerName name of the calling function in the public API.
   * @internal
   */
  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {
    warnNoop(publicInstance, 'replaceState');
  },

  /**
   * Sets a subset of the state. This only exists because _pendingState is
   * internal. This provides a merging strategy that is not available to deep
   * properties which is confusing. TODO: Expose pendingState or don't use it
   * during the merge.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} partialState Next partial state to be merged with state.
   * @param {?function} callback Called after component is updated.
   * @param {?string} Name of the calling function in the public API.
   * @internal
   */
  enqueueSetState: function (publicInstance, partialState, callback, callerName) {
    warnNoop(publicInstance, 'setState');
  }
};

var emptyObject = {};
{
  Object.freeze(emptyObject);
}

/**
 * Base class helpers for the updating state of a component.
 */
function Component(props, context, updater) {
  this.props = props;
  this.context = context;
  // If a component has string refs, we will assign a different object later.
  this.refs = emptyObject;
  // We initialize the default updater but the real one gets injected by the
  // renderer.
  this.updater = updater || ReactNoopUpdateQueue;
}

Component.prototype.isReactComponent = {};

/**
 * Sets a subset of the state. Always use this to mutate
 * state. You should treat `this.state` as immutable.
 *
 * There is no guarantee that `this.state` will be immediately updated, so
 * accessing `this.state` after calling this method may return the old value.
 *
 * There is no guarantee that calls to `setState` will run synchronously,
 * as they may eventually be batched together.  You can provide an optional
 * callback that will be executed when the call to setState is actually
 * completed.
 *
 * When a function is provided to setState, it will be called at some point in
 * the future (not synchronously). It will be called with the up to date
 * component arguments (state, props, context). These values can be different
 * from this.* because your function may be called after receiveProps but before
 * shouldComponentUpdate, and this new state, props, and context will not yet be
 * assigned to this.
 *
 * @param {object|function} partialState Next partial state or function to
 *        produce next partial state to be merged with current state.
 * @param {?function} callback Called after state is updated.
 * @final
 * @protected
 */
Component.prototype.setState = function (partialState, callback) {
  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : void 0;
  this.updater.enqueueSetState(this, partialState, callback, 'setState');
};

/**
 * Forces an update. This should only be invoked when it is known with
 * certainty that we are **not** in a DOM transaction.
 *
 * You may want to call this when you know that some deeper aspect of the
 * component's state has changed but `setState` was not called.
 *
 * This will not invoke `shouldComponentUpdate`, but it will invoke
 * `componentWillUpdate` and `componentDidUpdate`.
 *
 * @param {?function} callback Called after update is complete.
 * @final
 * @protected
 */
Component.prototype.forceUpdate = function (callback) {
  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
};

/**
 * Deprecated APIs. These APIs used to exist on classic React classes but since
 * we would like to deprecate them, we're not going to move them over to this
 * modern base class. Instead, we define a getter that warns if it's accessed.
 */
{
  var deprecatedAPIs = {
    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
  };
  var defineDeprecationWarning = function (methodName, info) {
    Object.defineProperty(Component.prototype, methodName, {
      get: function () {
        lowPriorityWarning$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
        return undefined;
      }
    });
  };
  for (var fnName in deprecatedAPIs) {
    if (deprecatedAPIs.hasOwnProperty(fnName)) {
      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
    }
  }
}

function ComponentDummy() {}
ComponentDummy.prototype = Component.prototype;

/**
 * Convenience component with default shallow equality check for sCU.
 */
function PureComponent(props, context, updater) {
  this.props = props;
  this.context = context;
  // If a component has string refs, we will assign a different object later.
  this.refs = emptyObject;
  this.updater = updater || ReactNoopUpdateQueue;
}

var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
pureComponentPrototype.constructor = PureComponent;
// Avoid an extra prototype jump for these methods.
_assign(pureComponentPrototype, Component.prototype);
pureComponentPrototype.isPureReactComponent = true;

// an immutable object with a single mutable value
function createRef() {
  var refObject = {
    current: null
  };
  {
    Object.seal(refObject);
  }
  return refObject;
}

/**
 * Keeps track of the current dispatcher.
 */
var ReactCurrentDispatcher = {
  /**
   * @internal
   * @type {ReactComponent}
   */
  current: null
};

/**
 * Keeps track of the current owner.
 *
 * The current owner is the component who should own any components that are
 * currently being constructed.
 */
var ReactCurrentOwner = {
  /**
   * @internal
   * @type {ReactComponent}
   */
  current: null
};

var BEFORE_SLASH_RE = /^(.*)[\\\/]/;

var describeComponentFrame = function (name, source, ownerName) {
  var sourceInfo = '';
  if (source) {
    var path = source.fileName;
    var fileName = path.replace(BEFORE_SLASH_RE, '');
    {
      // In DEV, include code for a common special case:
      // prefer "folder/index.js" instead of just "index.js".
      if (/^index\./.test(fileName)) {
        var match = path.match(BEFORE_SLASH_RE);
        if (match) {
          var pathBeforeSlash = match[1];
          if (pathBeforeSlash) {
            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
            fileName = folderName + '/' + fileName;
          }
        }
      }
    }
    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
  } else if (ownerName) {
    sourceInfo = ' (created by ' + ownerName + ')';
  }
  return '\n    in ' + (name || 'Unknown') + sourceInfo;
};

var Resolved = 1;


function refineResolvedLazyComponent(lazyComponent) {
  return lazyComponent._status === Resolved ? lazyComponent._result : null;
}

function getWrappedName(outerType, innerType, wrapperName) {
  var functionName = innerType.displayName || innerType.name || '';
  return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);
}

function getComponentName(type) {
  if (type == null) {
    // Host root, text node or just invalid type.
    return null;
  }
  {
    if (typeof type.tag === 'number') {
      warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
    }
  }
  if (typeof type === 'function') {
    return type.displayName || type.name || null;
  }
  if (typeof type === 'string') {
    return type;
  }
  switch (type) {
    case REACT_CONCURRENT_MODE_TYPE:
      return 'ConcurrentMode';
    case REACT_FRAGMENT_TYPE:
      return 'Fragment';
    case REACT_PORTAL_TYPE:
      return 'Portal';
    case REACT_PROFILER_TYPE:
      return 'Profiler';
    case REACT_STRICT_MODE_TYPE:
      return 'StrictMode';
    case REACT_SUSPENSE_TYPE:
      return 'Suspense';
  }
  if (typeof type === 'object') {
    switch (type.$$typeof) {
      case REACT_CONTEXT_TYPE:
        return 'Context.Consumer';
      case REACT_PROVIDER_TYPE:
        return 'Context.Provider';
      case REACT_FORWARD_REF_TYPE:
        return getWrappedName(type, type.render, 'ForwardRef');
      case REACT_MEMO_TYPE:
        return getComponentName(type.type);
      case REACT_LAZY_TYPE:
        {
          var thenable = type;
          var resolvedThenable = refineResolvedLazyComponent(thenable);
          if (resolvedThenable) {
            return getComponentName(resolvedThenable);
          }
        }
    }
  }
  return null;
}

var ReactDebugCurrentFrame = {};

var currentlyValidatingElement = null;

function setCurrentlyValidatingElement(element) {
  {
    currentlyValidatingElement = element;
  }
}

{
  // Stack implementation injected by the current renderer.
  ReactDebugCurrentFrame.getCurrentStack = null;

  ReactDebugCurrentFrame.getStackAddendum = function () {
    var stack = '';

    // Add an extra top frame while an element is being validated
    if (currentlyValidatingElement) {
      var name = getComponentName(currentlyValidatingElement.type);
      var owner = currentlyValidatingElement._owner;
      stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));
    }

    // Delegate to the injected renderer-specific implementation
    var impl = ReactDebugCurrentFrame.getCurrentStack;
    if (impl) {
      stack += impl() || '';
    }

    return stack;
  };
}

var ReactSharedInternals = {
  ReactCurrentDispatcher: ReactCurrentDispatcher,
  ReactCurrentOwner: ReactCurrentOwner,
  // Used by renderers to avoid bundling object-assign twice in UMD bundles:
  assign: _assign
};

{
  _assign(ReactSharedInternals, {
    // These should not be included in production.
    ReactDebugCurrentFrame: ReactDebugCurrentFrame,
    // Shim for React DOM 16.0.0 which still destructured (but not used) this.
    // TODO: remove in React 17.0.
    ReactComponentTreeHook: {}
  });
}

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warning = warningWithoutStack$1;

{
  warning = function (condition, format) {
    if (condition) {
      return;
    }
    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
    var stack = ReactDebugCurrentFrame.getStackAddendum();
    // eslint-disable-next-line react-internal/warning-and-invariant-args

    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }

    warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));
  };
}

var warning$1 = warning;

var hasOwnProperty = Object.prototype.hasOwnProperty;

var RESERVED_PROPS = {
  key: true,
  ref: true,
  __self: true,
  __source: true
};

var specialPropKeyWarningShown = void 0;
var specialPropRefWarningShown = void 0;

function hasValidRef(config) {
  {
    if (hasOwnProperty.call(config, 'ref')) {
      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
      if (getter && getter.isReactWarning) {
        return false;
      }
    }
  }
  return config.ref !== undefined;
}

function hasValidKey(config) {
  {
    if (hasOwnProperty.call(config, 'key')) {
      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
      if (getter && getter.isReactWarning) {
        return false;
      }
    }
  }
  return config.key !== undefined;
}

function defineKeyPropWarningGetter(props, displayName) {
  var warnAboutAccessingKey = function () {
    if (!specialPropKeyWarningShown) {
      specialPropKeyWarningShown = true;
      warningWithoutStack$1(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);
    }
  };
  warnAboutAccessingKey.isReactWarning = true;
  Object.defineProperty(props, 'key', {
    get: warnAboutAccessingKey,
    configurable: true
  });
}

function defineRefPropWarningGetter(props, displayName) {
  var warnAboutAccessingRef = function () {
    if (!specialPropRefWarningShown) {
      specialPropRefWarningShown = true;
      warningWithoutStack$1(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);
    }
  };
  warnAboutAccessingRef.isReactWarning = true;
  Object.defineProperty(props, 'ref', {
    get: warnAboutAccessingRef,
    configurable: true
  });
}

/**
 * Factory method to create a new React element. This no longer adheres to
 * the class pattern, so do not use new to call it. Also, no instanceof check
 * will work. Instead test $$typeof field against Symbol.for('react.element') to check
 * if something is a React Element.
 *
 * @param {*} type
 * @param {*} key
 * @param {string|object} ref
 * @param {*} self A *temporary* helper to detect places where `this` is
 * different from the `owner` when React.createElement is called, so that we
 * can warn. We want to get rid of owner and replace string `ref`s with arrow
 * functions, and as long as `this` and owner are the same, there will be no
 * change in behavior.
 * @param {*} source An annotation object (added by a transpiler or otherwise)
 * indicating filename, line number, and/or other information.
 * @param {*} owner
 * @param {*} props
 * @internal
 */
var ReactElement = function (type, key, ref, self, source, owner, props) {
  var element = {
    // This tag allows us to uniquely identify this as a React Element
    $$typeof: REACT_ELEMENT_TYPE,

    // Built-in properties that belong on the element
    type: type,
    key: key,
    ref: ref,
    props: props,

    // Record the component responsible for creating this element.
    _owner: owner
  };

  {
    // The validation flag is currently mutative. We put it on
    // an external backing store so that we can freeze the whole object.
    // This can be replaced with a WeakMap once they are implemented in
    // commonly used development environments.
    element._store = {};

    // To make comparing ReactElements easier for testing purposes, we make
    // the validation flag non-enumerable (where possible, which should
    // include every environment we run tests in), so the test framework
    // ignores it.
    Object.defineProperty(element._store, 'validated', {
      configurable: false,
      enumerable: false,
      writable: true,
      value: false
    });
    // self and source are DEV only properties.
    Object.defineProperty(element, '_self', {
      configurable: false,
      enumerable: false,
      writable: false,
      value: self
    });
    // Two elements created in two different places should be considered
    // equal for testing purposes and therefore we hide it from enumeration.
    Object.defineProperty(element, '_source', {
      configurable: false,
      enumerable: false,
      writable: false,
      value: source
    });
    if (Object.freeze) {
      Object.freeze(element.props);
      Object.freeze(element);
    }
  }

  return element;
};

/**
 * Create and return a new ReactElement of the given type.
 * See https://reactjs.org/docs/react-api.html#createelement
 */
function createElement(type, config, children) {
  var propName = void 0;

  // Reserved names are extracted
  var props = {};

  var key = null;
  var ref = null;
  var self = null;
  var source = null;

  if (config != null) {
    if (hasValidRef(config)) {
      ref = config.ref;
    }
    if (hasValidKey(config)) {
      key = '' + config.key;
    }

    self = config.__self === undefined ? null : config.__self;
    source = config.__source === undefined ? null : config.__source;
    // Remaining properties are added to a new props object
    for (propName in config) {
      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
        props[propName] = config[propName];
      }
    }
  }

  // Children can be more than one argument, and those are transferred onto
  // the newly allocated props object.
  var childrenLength = arguments.length - 2;
  if (childrenLength === 1) {
    props.children = children;
  } else if (childrenLength > 1) {
    var childArray = Array(childrenLength);
    for (var i = 0; i < childrenLength; i++) {
      childArray[i] = arguments[i + 2];
    }
    {
      if (Object.freeze) {
        Object.freeze(childArray);
      }
    }
    props.children = childArray;
  }

  // Resolve default props
  if (type && type.defaultProps) {
    var defaultProps = type.defaultProps;
    for (propName in defaultProps) {
      if (props[propName] === undefined) {
        props[propName] = defaultProps[propName];
      }
    }
  }
  {
    if (key || ref) {
      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
      if (key) {
        defineKeyPropWarningGetter(props, displayName);
      }
      if (ref) {
        defineRefPropWarningGetter(props, displayName);
      }
    }
  }
  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
}

/**
 * Return a function that produces ReactElements of a given type.
 * See https://reactjs.org/docs/react-api.html#createfactory
 */


function cloneAndReplaceKey(oldElement, newKey) {
  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);

  return newElement;
}

/**
 * Clone and return a new ReactElement using element as the starting point.
 * See https://reactjs.org/docs/react-api.html#cloneelement
 */
function cloneElement(element, config, children) {
  !!(element === null || element === undefined) ? invariant(false, 'React.cloneElement(...): The argument must be a React element, but you passed %s.', element) : void 0;

  var propName = void 0;

  // Original props are copied
  var props = _assign({}, element.props);

  // Reserved names are extracted
  var key = element.key;
  var ref = element.ref;
  // Self is preserved since the owner is preserved.
  var self = element._self;
  // Source is preserved since cloneElement is unlikely to be targeted by a
  // transpiler, and the original source is probably a better indicator of the
  // true owner.
  var source = element._source;

  // Owner will be preserved, unless ref is overridden
  var owner = element._owner;

  if (config != null) {
    if (hasValidRef(config)) {
      // Silently steal the ref from the parent.
      ref = config.ref;
      owner = ReactCurrentOwner.current;
    }
    if (hasValidKey(config)) {
      key = '' + config.key;
    }

    // Remaining properties override existing props
    var defaultProps = void 0;
    if (element.type && element.type.defaultProps) {
      defaultProps = element.type.defaultProps;
    }
    for (propName in config) {
      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
        if (config[propName] === undefined && defaultProps !== undefined) {
          // Resolve default props
          props[propName] = defaultProps[propName];
        } else {
          props[propName] = config[propName];
        }
      }
    }
  }

  // Children can be more than one argument, and those are transferred onto
  // the newly allocated props object.
  var childrenLength = arguments.length - 2;
  if (childrenLength === 1) {
    props.children = children;
  } else if (childrenLength > 1) {
    var childArray = Array(childrenLength);
    for (var i = 0; i < childrenLength; i++) {
      childArray[i] = arguments[i + 2];
    }
    props.children = childArray;
  }

  return ReactElement(element.type, key, ref, self, source, owner, props);
}

/**
 * Verifies the object is a ReactElement.
 * See https://reactjs.org/docs/react-api.html#isvalidelement
 * @param {?object} object
 * @return {boolean} True if `object` is a ReactElement.
 * @final
 */
function isValidElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}

var SEPARATOR = '.';
var SUBSEPARATOR = ':';

/**
 * Escape and wrap key so it is safe to use as a reactid
 *
 * @param {string} key to be escaped.
 * @return {string} the escaped key.
 */
function escape(key) {
  var escapeRegex = /[=:]/g;
  var escaperLookup = {
    '=': '=0',
    ':': '=2'
  };
  var escapedString = ('' + key).replace(escapeRegex, function (match) {
    return escaperLookup[match];
  });

  return '$' + escapedString;
}

/**
 * TODO: Test that a single child and an array with one item have the same key
 * pattern.
 */

var didWarnAboutMaps = false;

var userProvidedKeyEscapeRegex = /\/+/g;
function escapeUserProvidedKey(text) {
  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');
}

var POOL_SIZE = 10;
var traverseContextPool = [];
function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {
  if (traverseContextPool.length) {
    var traverseContext = traverseContextPool.pop();
    traverseContext.result = mapResult;
    traverseContext.keyPrefix = keyPrefix;
    traverseContext.func = mapFunction;
    traverseContext.context = mapContext;
    traverseContext.count = 0;
    return traverseContext;
  } else {
    return {
      result: mapResult,
      keyPrefix: keyPrefix,
      func: mapFunction,
      context: mapContext,
      count: 0
    };
  }
}

function releaseTraverseContext(traverseContext) {
  traverseContext.result = null;
  traverseContext.keyPrefix = null;
  traverseContext.func = null;
  traverseContext.context = null;
  traverseContext.count = 0;
  if (traverseContextPool.length < POOL_SIZE) {
    traverseContextPool.push(traverseContext);
  }
}

/**
 * @param {?*} children Children tree container.
 * @param {!string} nameSoFar Name of the key path so far.
 * @param {!function} callback Callback to invoke with each child found.
 * @param {?*} traverseContext Used to pass information throughout the traversal
 * process.
 * @return {!number} The number of children in this subtree.
 */
function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {
  var type = typeof children;

  if (type === 'undefined' || type === 'boolean') {
    // All of the above are perceived as null.
    children = null;
  }

  var invokeCallback = false;

  if (children === null) {
    invokeCallback = true;
  } else {
    switch (type) {
      case 'string':
      case 'number':
        invokeCallback = true;
        break;
      case 'object':
        switch (children.$$typeof) {
          case REACT_ELEMENT_TYPE:
          case REACT_PORTAL_TYPE:
            invokeCallback = true;
        }
    }
  }

  if (invokeCallback) {
    callback(traverseContext, children,
    // If it's the only child, treat the name as if it was wrapped in an array
    // so that it's consistent if the number of children grows.
    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);
    return 1;
  }

  var child = void 0;
  var nextName = void 0;
  var subtreeCount = 0; // Count of children found in the current subtree.
  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;

  if (Array.isArray(children)) {
    for (var i = 0; i < children.length; i++) {
      child = children[i];
      nextName = nextNamePrefix + getComponentKey(child, i);
      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
    }
  } else {
    var iteratorFn = getIteratorFn(children);
    if (typeof iteratorFn === 'function') {
      {
        // Warn about using Maps as children
        if (iteratorFn === children.entries) {
          !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;
          didWarnAboutMaps = true;
        }
      }

      var iterator = iteratorFn.call(children);
      var step = void 0;
      var ii = 0;
      while (!(step = iterator.next()).done) {
        child = step.value;
        nextName = nextNamePrefix + getComponentKey(child, ii++);
        subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
      }
    } else if (type === 'object') {
      var addendum = '';
      {
        addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();
      }
      var childrenString = '' + children;
      invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum);
    }
  }

  return subtreeCount;
}

/**
 * Traverses children that are typically specified as `props.children`, but
 * might also be specified through attributes:
 *
 * - `traverseAllChildren(this.props.children, ...)`
 * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
 *
 * The `traverseContext` is an optional argument that is passed through the
 * entire traversal. It can be used to store accumulations or anything else that
 * the callback might find relevant.
 *
 * @param {?*} children Children tree object.
 * @param {!function} callback To invoke upon traversing each child.
 * @param {?*} traverseContext Context for traversal.
 * @return {!number} The number of children in this subtree.
 */
function traverseAllChildren(children, callback, traverseContext) {
  if (children == null) {
    return 0;
  }

  return traverseAllChildrenImpl(children, '', callback, traverseContext);
}

/**
 * Generate a key string that identifies a component within a set.
 *
 * @param {*} component A component that could contain a manual key.
 * @param {number} index Index that is used if a manual key is not provided.
 * @return {string}
 */
function getComponentKey(component, index) {
  // Do some typechecking here since we call this blindly. We want to ensure
  // that we don't block potential future ES APIs.
  if (typeof component === 'object' && component !== null && component.key != null) {
    // Explicit key
    return escape(component.key);
  }
  // Implicit key determined by the index in the set
  return index.toString(36);
}

function forEachSingleChild(bookKeeping, child, name) {
  var func = bookKeeping.func,
      context = bookKeeping.context;

  func.call(context, child, bookKeeping.count++);
}

/**
 * Iterates through children that are typically specified as `props.children`.
 *
 * See https://reactjs.org/docs/react-api.html#reactchildrenforeach
 *
 * The provided forEachFunc(child, index) will be called for each
 * leaf child.
 *
 * @param {?*} children Children tree container.
 * @param {function(*, int)} forEachFunc
 * @param {*} forEachContext Context for forEachContext.
 */
function forEachChildren(children, forEachFunc, forEachContext) {
  if (children == null) {
    return children;
  }
  var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);
  traverseAllChildren(children, forEachSingleChild, traverseContext);
  releaseTraverseContext(traverseContext);
}

function mapSingleChildIntoContext(bookKeeping, child, childKey) {
  var result = bookKeeping.result,
      keyPrefix = bookKeeping.keyPrefix,
      func = bookKeeping.func,
      context = bookKeeping.context;


  var mappedChild = func.call(context, child, bookKeeping.count++);
  if (Array.isArray(mappedChild)) {
    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {
      return c;
    });
  } else if (mappedChild != null) {
    if (isValidElement(mappedChild)) {
      mappedChild = cloneAndReplaceKey(mappedChild,
      // Keep both the (mapped) and old keys if they differ, just as
      // traverseAllChildren used to do for objects as children
      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);
    }
    result.push(mappedChild);
  }
}

function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {
  var escapedPrefix = '';
  if (prefix != null) {
    escapedPrefix = escapeUserProvidedKey(prefix) + '/';
  }
  var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);
  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);
  releaseTraverseContext(traverseContext);
}

/**
 * Maps children that are typically specified as `props.children`.
 *
 * See https://reactjs.org/docs/react-api.html#reactchildrenmap
 *
 * The provided mapFunction(child, key, index) will be called for each
 * leaf child.
 *
 * @param {?*} children Children tree container.
 * @param {function(*, int)} func The map function.
 * @param {*} context Context for mapFunction.
 * @return {object} Object containing the ordered map of results.
 */
function mapChildren(children, func, context) {
  if (children == null) {
    return children;
  }
  var result = [];
  mapIntoWithKeyPrefixInternal(children, result, null, func, context);
  return result;
}

/**
 * Count the number of children that are typically specified as
 * `props.children`.
 *
 * See https://reactjs.org/docs/react-api.html#reactchildrencount
 *
 * @param {?*} children Children tree container.
 * @return {number} The number of children.
 */
function countChildren(children) {
  return traverseAllChildren(children, function () {
    return null;
  }, null);
}

/**
 * Flatten a children object (typically specified as `props.children`) and
 * return an array with appropriately re-keyed children.
 *
 * See https://reactjs.org/docs/react-api.html#reactchildrentoarray
 */
function toArray(children) {
  var result = [];
  mapIntoWithKeyPrefixInternal(children, result, null, function (child) {
    return child;
  });
  return result;
}

/**
 * Returns the first child in a collection of children and verifies that there
 * is only one child in the collection.
 *
 * See https://reactjs.org/docs/react-api.html#reactchildrenonly
 *
 * The current implementation of this function assumes that a single child gets
 * passed without a wrapper, but the purpose of this helper function is to
 * abstract away the particular structure of children.
 *
 * @param {?object} children Child collection structure.
 * @return {ReactElement} The first and only `ReactElement` contained in the
 * structure.
 */
function onlyChild(children) {
  !isValidElement(children) ? invariant(false, 'React.Children.only expected to receive a single React element child.') : void 0;
  return children;
}

function createContext(defaultValue, calculateChangedBits) {
  if (calculateChangedBits === undefined) {
    calculateChangedBits = null;
  } else {
    {
      !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warningWithoutStack$1(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0;
    }
  }

  var context = {
    $$typeof: REACT_CONTEXT_TYPE,
    _calculateChangedBits: calculateChangedBits,
    // As a workaround to support multiple concurrent renderers, we categorize
    // some renderers as primary and others as secondary. We only expect
    // there to be two concurrent renderers at most: React Native (primary) and
    // Fabric (secondary); React DOM (primary) and React ART (secondary).
    // Secondary renderers store their context values on separate fields.
    _currentValue: defaultValue,
    _currentValue2: defaultValue,
    // Used to track how many concurrent renderers this context currently
    // supports within in a single renderer. Such as parallel server rendering.
    _threadCount: 0,
    // These are circular
    Provider: null,
    Consumer: null
  };

  context.Provider = {
    $$typeof: REACT_PROVIDER_TYPE,
    _context: context
  };

  var hasWarnedAboutUsingNestedContextConsumers = false;
  var hasWarnedAboutUsingConsumerProvider = false;

  {
    // A separate object, but proxies back to the original context object for
    // backwards compatibility. It has a different $$typeof, so we can properly
    // warn for the incorrect usage of Context as a Consumer.
    var Consumer = {
      $$typeof: REACT_CONTEXT_TYPE,
      _context: context,
      _calculateChangedBits: context._calculateChangedBits
    };
    // $FlowFixMe: Flow complains about not setting a value, which is intentional here
    Object.defineProperties(Consumer, {
      Provider: {
        get: function () {
          if (!hasWarnedAboutUsingConsumerProvider) {
            hasWarnedAboutUsingConsumerProvider = true;
            warning$1(false, 'Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');
          }
          return context.Provider;
        },
        set: function (_Provider) {
          context.Provider = _Provider;
        }
      },
      _currentValue: {
        get: function () {
          return context._currentValue;
        },
        set: function (_currentValue) {
          context._currentValue = _currentValue;
        }
      },
      _currentValue2: {
        get: function () {
          return context._currentValue2;
        },
        set: function (_currentValue2) {
          context._currentValue2 = _currentValue2;
        }
      },
      _threadCount: {
        get: function () {
          return context._threadCount;
        },
        set: function (_threadCount) {
          context._threadCount = _threadCount;
        }
      },
      Consumer: {
        get: function () {
          if (!hasWarnedAboutUsingNestedContextConsumers) {
            hasWarnedAboutUsingNestedContextConsumers = true;
            warning$1(false, 'Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');
          }
          return context.Consumer;
        }
      }
    });
    // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty
    context.Consumer = Consumer;
  }

  {
    context._currentRenderer = null;
    context._currentRenderer2 = null;
  }

  return context;
}

function lazy(ctor) {
  var lazyType = {
    $$typeof: REACT_LAZY_TYPE,
    _ctor: ctor,
    // React uses these fields to store the result.
    _status: -1,
    _result: null
  };

  {
    // In production, this would just set it on the object.
    var defaultProps = void 0;
    var propTypes = void 0;
    Object.defineProperties(lazyType, {
      defaultProps: {
        configurable: true,
        get: function () {
          return defaultProps;
        },
        set: function (newDefaultProps) {
          warning$1(false, 'React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
          defaultProps = newDefaultProps;
          // Match production behavior more closely:
          Object.defineProperty(lazyType, 'defaultProps', {
            enumerable: true
          });
        }
      },
      propTypes: {
        configurable: true,
        get: function () {
          return propTypes;
        },
        set: function (newPropTypes) {
          warning$1(false, 'React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
          propTypes = newPropTypes;
          // Match production behavior more closely:
          Object.defineProperty(lazyType, 'propTypes', {
            enumerable: true
          });
        }
      }
    });
  }

  return lazyType;
}

function forwardRef(render) {
  {
    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {
      warningWithoutStack$1(false, 'forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');
    } else if (typeof render !== 'function') {
      warningWithoutStack$1(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);
    } else {
      !(
      // Do not warn for 0 arguments because it could be due to usage of the 'arguments' object
      render.length === 0 || render.length === 2) ? warningWithoutStack$1(false, 'forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.') : void 0;
    }

    if (render != null) {
      !(render.defaultProps == null && render.propTypes == null) ? warningWithoutStack$1(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0;
    }
  }

  return {
    $$typeof: REACT_FORWARD_REF_TYPE,
    render: render
  };
}

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' ||
  // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);
}

function memo(type, compare) {
  {
    if (!isValidElementType(type)) {
      warningWithoutStack$1(false, 'memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);
    }
  }
  return {
    $$typeof: REACT_MEMO_TYPE,
    type: type,
    compare: compare === undefined ? null : compare
  };
}

function resolveDispatcher() {
  var dispatcher = ReactCurrentDispatcher.current;
  !(dispatcher !== null) ? invariant(false, 'Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.') : void 0;
  return dispatcher;
}

function useContext(Context, unstable_observedBits) {
  var dispatcher = resolveDispatcher();
  {
    !(unstable_observedBits === undefined) ? warning$1(false, 'useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\n\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '') : void 0;

    // TODO: add a more generic warning for invalid values.
    if (Context._context !== undefined) {
      var realContext = Context._context;
      // Don't deduplicate because this legitimately causes bugs
      // and nobody should be using this in existing code.
      if (realContext.Consumer === Context) {
        warning$1(false, 'Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');
      } else if (realContext.Provider === Context) {
        warning$1(false, 'Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');
      }
    }
  }
  return dispatcher.useContext(Context, unstable_observedBits);
}

function useState(initialState) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useState(initialState);
}

function useReducer(reducer, initialArg, init) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useReducer(reducer, initialArg, init);
}

function useRef(initialValue) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useRef(initialValue);
}

function useEffect(create, inputs) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useEffect(create, inputs);
}

function useLayoutEffect(create, inputs) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useLayoutEffect(create, inputs);
}

function useCallback(callback, inputs) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useCallback(callback, inputs);
}

function useMemo(create, inputs) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useMemo(create, inputs);
}

function useImperativeHandle(ref, create, inputs) {
  var dispatcher = resolveDispatcher();
  return dispatcher.useImperativeHandle(ref, create, inputs);
}

function useDebugValue(value, formatterFn) {
  {
    var dispatcher = resolveDispatcher();
    return dispatcher.useDebugValue(value, formatterFn);
  }
}

/**
 * ReactElementValidator provides a wrapper around a element factory
 * which validates the props passed to the element. This is intended to be
 * used only in DEV and could be replaced by a static type checker for languages
 * that support it.
 */

var propTypesMisspellWarningShown = void 0;

{
  propTypesMisspellWarningShown = false;
}

function getDeclarationErrorAddendum() {
  if (ReactCurrentOwner.current) {
    var name = getComponentName(ReactCurrentOwner.current.type);
    if (name) {
      return '\n\nCheck the render method of `' + name + '`.';
    }
  }
  return '';
}

function getSourceInfoErrorAddendum(elementProps) {
  if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {
    var source = elementProps.__source;
    var fileName = source.fileName.replace(/^.*[\\\/]/, '');
    var lineNumber = source.lineNumber;
    return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
  }
  return '';
}

/**
 * Warn if there's no key explicitly set on dynamic arrays of children or
 * object keys are not valid. This allows us to keep track of children between
 * updates.
 */
var ownerHasKeyUseWarning = {};

function getCurrentComponentErrorInfo(parentType) {
  var info = getDeclarationErrorAddendum();

  if (!info) {
    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
    if (parentName) {
      info = '\n\nCheck the top-level render call using <' + parentName + '>.';
    }
  }
  return info;
}

/**
 * Warn if the element doesn't have an explicit key assigned to it.
 * This element is in an array. The array could grow and shrink or be
 * reordered. All children that haven't already been validated are required to
 * have a "key" property assigned to it. Error statuses are cached so a warning
 * will only be shown once.
 *
 * @internal
 * @param {ReactElement} element Element that requires a key.
 * @param {*} parentType element's parent's type.
 */
function validateExplicitKey(element, parentType) {
  if (!element._store || element._store.validated || element.key != null) {
    return;
  }
  element._store.validated = true;

  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
    return;
  }
  ownerHasKeyUseWarning[currentComponentErrorInfo] = true;

  // Usually the current owner is the offender, but if it accepts children as a
  // property, it may be the creator of the child that's responsible for
  // assigning it a key.
  var childOwner = '';
  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
    // Give the component that originally created this child.
    childOwner = ' It was passed a child from ' + getComponentName(element._owner.type) + '.';
  }

  setCurrentlyValidatingElement(element);
  {
    warning$1(false, 'Each child in a list should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);
  }
  setCurrentlyValidatingElement(null);
}

/**
 * Ensure that every element either is passed in a static location, in an
 * array with an explicit keys property defined, or in an object literal
 * with valid key property.
 *
 * @internal
 * @param {ReactNode} node Statically passed child of any type.
 * @param {*} parentType node's parent's type.
 */
function validateChildKeys(node, parentType) {
  if (typeof node !== 'object') {
    return;
  }
  if (Array.isArray(node)) {
    for (var i = 0; i < node.length; i++) {
      var child = node[i];
      if (isValidElement(child)) {
        validateExplicitKey(child, parentType);
      }
    }
  } else if (isValidElement(node)) {
    // This element was passed in a valid location.
    if (node._store) {
      node._store.validated = true;
    }
  } else if (node) {
    var iteratorFn = getIteratorFn(node);
    if (typeof iteratorFn === 'function') {
      // Entry iterators used to provide implicit keys,
      // but now we print a separate warning for them later.
      if (iteratorFn !== node.entries) {
        var iterator = iteratorFn.call(node);
        var step = void 0;
        while (!(step = iterator.next()).done) {
          if (isValidElement(step.value)) {
            validateExplicitKey(step.value, parentType);
          }
        }
      }
    }
  }
}

/**
 * Given an element, validate that its props follow the propTypes definition,
 * provided by the type.
 *
 * @param {ReactElement} element
 */
function validatePropTypes(element) {
  var type = element.type;
  if (type === null || type === undefined || typeof type === 'string') {
    return;
  }
  var name = getComponentName(type);
  var propTypes = void 0;
  if (typeof type === 'function') {
    propTypes = type.propTypes;
  } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE ||
  // Note: Memo only checks outer props here.
  // Inner props are checked in the reconciler.
  type.$$typeof === REACT_MEMO_TYPE)) {
    propTypes = type.propTypes;
  } else {
    return;
  }
  if (propTypes) {
    setCurrentlyValidatingElement(element);
    checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);
    setCurrentlyValidatingElement(null);
  } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
    propTypesMisspellWarningShown = true;
    warningWithoutStack$1(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');
  }
  if (typeof type.getDefaultProps === 'function') {
    !type.getDefaultProps.isReactClassApproved ? warningWithoutStack$1(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;
  }
}

/**
 * Given a fragment, validate that it can only be provided with fragment props
 * @param {ReactElement} fragment
 */
function validateFragmentProps(fragment) {
  setCurrentlyValidatingElement(fragment);

  var keys = Object.keys(fragment.props);
  for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    if (key !== 'children' && key !== 'key') {
      warning$1(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
      break;
    }
  }

  if (fragment.ref !== null) {
    warning$1(false, 'Invalid attribute `ref` supplied to `React.Fragment`.');
  }

  setCurrentlyValidatingElement(null);
}

function createElementWithValidation(type, props, children) {
  var validType = isValidElementType(type);

  // We warn in this case but don't throw. We expect the element creation to
  // succeed and there will likely be errors in render.
  if (!validType) {
    var info = '';
    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
      info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
    }

    var sourceInfo = getSourceInfoErrorAddendum(props);
    if (sourceInfo) {
      info += sourceInfo;
    } else {
      info += getDeclarationErrorAddendum();
    }

    var typeString = void 0;
    if (type === null) {
      typeString = 'null';
    } else if (Array.isArray(type)) {
      typeString = 'array';
    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
      typeString = '<' + (getComponentName(type.type) || 'Unknown') + ' />';
      info = ' Did you accidentally export a JSX literal instead of a component?';
    } else {
      typeString = typeof type;
    }

    warning$1(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
  }

  var element = createElement.apply(this, arguments);

  // The result can be nullish if a mock or a custom function is used.
  // TODO: Drop this when these are no longer allowed as the type argument.
  if (element == null) {
    return element;
  }

  // Skip key warning if the type isn't valid since our key validation logic
  // doesn't expect a non-string/function type and can throw confusing errors.
  // We don't want exception behavior to differ between dev and prod.
  // (Rendering will throw with a helpful message and as soon as the type is
  // fixed, the key warnings will appear.)
  if (validType) {
    for (var i = 2; i < arguments.length; i++) {
      validateChildKeys(arguments[i], type);
    }
  }

  if (type === REACT_FRAGMENT_TYPE) {
    validateFragmentProps(element);
  } else {
    validatePropTypes(element);
  }

  return element;
}

function createFactoryWithValidation(type) {
  var validatedFactory = createElementWithValidation.bind(null, type);
  validatedFactory.type = type;
  // Legacy hook: remove it
  {
    Object.defineProperty(validatedFactory, 'type', {
      enumerable: false,
      get: function () {
        lowPriorityWarning$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
        Object.defineProperty(this, 'type', {
          value: type
        });
        return type;
      }
    });
  }

  return validatedFactory;
}

function cloneElementWithValidation(element, props, children) {
  var newElement = cloneElement.apply(this, arguments);
  for (var i = 2; i < arguments.length; i++) {
    validateChildKeys(arguments[i], newElement.type);
  }
  validatePropTypes(newElement);
  return newElement;
}

// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:


// In some cases, StrictMode should also double-render lifecycles.
// This can be confusing for tests though,
// And it can be bad for performance in production.
// This feature flag can be used to control the behavior:


// To preserve the "Pause on caught exceptions" behavior of the debugger, we
// replay the begin phase of a failed component inside invokeGuardedCallback.


// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:


// Gather advanced timing metrics for Profiler subtrees.


// Trace which interactions trigger each commit.


// Only used in www builds.
 // TODO: true? Here it might just be false.

// Only used in www builds.


// Only used in www builds.


// React Fire: prevent the value and checked attributes from syncing
// with their related DOM properties


// These APIs will no longer be "unstable" in the upcoming 16.7 release,
// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.
var enableStableConcurrentModeAPIs = false;

var React = {
  Children: {
    map: mapChildren,
    forEach: forEachChildren,
    count: countChildren,
    toArray: toArray,
    only: onlyChild
  },

  createRef: createRef,
  Component: Component,
  PureComponent: PureComponent,

  createContext: createContext,
  forwardRef: forwardRef,
  lazy: lazy,
  memo: memo,

  useCallback: useCallback,
  useContext: useContext,
  useEffect: useEffect,
  useImperativeHandle: useImperativeHandle,
  useDebugValue: useDebugValue,
  useLayoutEffect: useLayoutEffect,
  useMemo: useMemo,
  useReducer: useReducer,
  useRef: useRef,
  useState: useState,

  Fragment: REACT_FRAGMENT_TYPE,
  StrictMode: REACT_STRICT_MODE_TYPE,
  Suspense: REACT_SUSPENSE_TYPE,

  createElement: createElementWithValidation,
  cloneElement: cloneElementWithValidation,
  createFactory: createFactoryWithValidation,
  isValidElement: isValidElement,

  version: ReactVersion,

  unstable_ConcurrentMode: REACT_CONCURRENT_MODE_TYPE,
  unstable_Profiler: REACT_PROFILER_TYPE,

  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals
};

// Note: some APIs are added with feature flags.
// Make sure that stable builds for open source
// don't modify the React object to avoid deopts.
// Also let's not expose their names in stable builds.

if (enableStableConcurrentModeAPIs) {
  React.ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
  React.Profiler = REACT_PROFILER_TYPE;
  React.unstable_ConcurrentMode = undefined;
  React.unstable_Profiler = undefined;
}



var React$2 = Object.freeze({
	default: React
});

var React$3 = ( React$2 && React ) || React$2;

// TODO: decide on the top-level export form.
// This is hacky but makes it work with both Rollup and Jest.
var react = React$3.default || React$3;

module.exports = react;
  })();
}


/***/ }),

/***/ "BMHr":
/*!***********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.7.2/node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \***********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "DVb/":
/*!***********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.6.0/node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \***********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "FJDr":
/*!**************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/fbjs/0.8.17/node_modules/fbjs/lib/emptyObject.js ***!
  \**************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */



var emptyObject = {};

if (true) {
  Object.freeze(emptyObject);
}

module.exports = emptyObject;

/***/ }),

/***/ "Q+bF":
/*!**********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/fbjs/0.8.17/node_modules/fbjs/lib/warning.js ***!
  \**********************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */



var emptyFunction = __webpack_require__(/*! ./emptyFunction */ "xvdx");

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warning = emptyFunction;

if (true) {
  var printWarning = function printWarning(format) {
    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }

    var argIndex = 0;
    var message = 'Warning: ' + format.replace(/%s/g, function () {
      return args[argIndex++];
    });
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };

  warning = function warning(condition, format) {
    if (format === undefined) {
      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
    }

    if (format.indexOf('Failed Composite propType: ') === 0) {
      return; // Ignore CompositeComponent proptype check.
    }

    if (!condition) {
      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
        args[_key2 - 2] = arguments[_key2];
      }

      printWarning.apply(undefined, [format].concat(args));
    }
  };
}

module.exports = warning;

/***/ }),

/***/ "R3cu":
/*!****************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.6.0/node_modules/prop-types/index.js ***!
  \****************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (true) {
  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
    Symbol.for &&
    Symbol.for('react.element')) ||
    0xeac7;

  var isValidElement = function(object) {
    return typeof object === 'object' &&
      object !== null &&
      object.$$typeof === REACT_ELEMENT_TYPE;
  };

  // By explicitly using `prop-types` you are opting into new development behavior.
  // http://fb.me/prop-types-in-prod
  var throwOnDirectAccess = true;
  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "2Jnp")(isValidElement, throwOnDirectAccess);
} else {}


/***/ }),

/***/ "U8ve":
/*!**********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/create-react-class/15.6.3/node_modules/create-react-class/factory.js ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */



var _assign = __webpack_require__(/*! object-assign */ "sjay");

var emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ "FJDr");
var _invariant = __webpack_require__(/*! fbjs/lib/invariant */ "ypis");

if (true) {
  var warning = __webpack_require__(/*! fbjs/lib/warning */ "Q+bF");
}

var MIXINS_KEY = 'mixins';

// Helper function to allow the creation of anonymous functions which do not
// have .name set to the name of the variable being assigned to.
function identity(fn) {
  return fn;
}

var ReactPropTypeLocationNames;
if (true) {
  ReactPropTypeLocationNames = {
    prop: 'prop',
    context: 'context',
    childContext: 'child context'
  };
} else {}

function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
  /**
   * Policies that describe methods in `ReactClassInterface`.
   */

  var injectedMixins = [];

  /**
   * Composite components are higher-level components that compose other composite
   * or host components.
   *
   * To create a new type of `ReactClass`, pass a specification of
   * your new class to `React.createClass`. The only requirement of your class
   * specification is that you implement a `render` method.
   *
   *   var MyComponent = React.createClass({
   *     render: function() {
   *       return <div>Hello World</div>;
   *     }
   *   });
   *
   * The class specification supports a specific protocol of methods that have
   * special meaning (e.g. `render`). See `ReactClassInterface` for
   * more the comprehensive protocol. Any other properties and methods in the
   * class specification will be available on the prototype.
   *
   * @interface ReactClassInterface
   * @internal
   */
  var ReactClassInterface = {
    /**
     * An array of Mixin objects to include when defining your component.
     *
     * @type {array}
     * @optional
     */
    mixins: 'DEFINE_MANY',

    /**
     * An object containing properties and methods that should be defined on
     * the component's constructor instead of its prototype (static methods).
     *
     * @type {object}
     * @optional
     */
    statics: 'DEFINE_MANY',

    /**
     * Definition of prop types for this component.
     *
     * @type {object}
     * @optional
     */
    propTypes: 'DEFINE_MANY',

    /**
     * Definition of context types for this component.
     *
     * @type {object}
     * @optional
     */
    contextTypes: 'DEFINE_MANY',

    /**
     * Definition of context types this component sets for its children.
     *
     * @type {object}
     * @optional
     */
    childContextTypes: 'DEFINE_MANY',

    // ==== Definition methods ====

    /**
     * Invoked when the component is mounted. Values in the mapping will be set on
     * `this.props` if that prop is not specified (i.e. using an `in` check).
     *
     * This method is invoked before `getInitialState` and therefore cannot rely
     * on `this.state` or use `this.setState`.
     *
     * @return {object}
     * @optional
     */
    getDefaultProps: 'DEFINE_MANY_MERGED',

    /**
     * Invoked once before the component is mounted. The return value will be used
     * as the initial value of `this.state`.
     *
     *   getInitialState: function() {
     *     return {
     *       isOn: false,
     *       fooBaz: new BazFoo()
     *     }
     *   }
     *
     * @return {object}
     * @optional
     */
    getInitialState: 'DEFINE_MANY_MERGED',

    /**
     * @return {object}
     * @optional
     */
    getChildContext: 'DEFINE_MANY_MERGED',

    /**
     * Uses props from `this.props` and state from `this.state` to render the
     * structure of the component.
     *
     * No guarantees are made about when or how often this method is invoked, so
     * it must not have side effects.
     *
     *   render: function() {
     *     var name = this.props.name;
     *     return <div>Hello, {name}!</div>;
     *   }
     *
     * @return {ReactComponent}
     * @required
     */
    render: 'DEFINE_ONCE',

    // ==== Delegate methods ====

    /**
     * Invoked when the component is initially created and about to be mounted.
     * This may have side effects, but any external subscriptions or data created
     * by this method must be cleaned up in `componentWillUnmount`.
     *
     * @optional
     */
    componentWillMount: 'DEFINE_MANY',

    /**
     * Invoked when the component has been mounted and has a DOM representation.
     * However, there is no guarantee that the DOM node is in the document.
     *
     * Use this as an opportunity to operate on the DOM when the component has
     * been mounted (initialized and rendered) for the first time.
     *
     * @param {DOMElement} rootNode DOM element representing the component.
     * @optional
     */
    componentDidMount: 'DEFINE_MANY',

    /**
     * Invoked before the component receives new props.
     *
     * Use this as an opportunity to react to a prop transition by updating the
     * state using `this.setState`. Current props are accessed via `this.props`.
     *
     *   componentWillReceiveProps: function(nextProps, nextContext) {
     *     this.setState({
     *       likesIncreasing: nextProps.likeCount > this.props.likeCount
     *     });
     *   }
     *
     * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
     * transition may cause a state change, but the opposite is not true. If you
     * need it, you are probably looking for `componentWillUpdate`.
     *
     * @param {object} nextProps
     * @optional
     */
    componentWillReceiveProps: 'DEFINE_MANY',

    /**
     * Invoked while deciding if the component should be updated as a result of
     * receiving new props, state and/or context.
     *
     * Use this as an opportunity to `return false` when you're certain that the
     * transition to the new props/state/context will not require a component
     * update.
     *
     *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {
     *     return !equal(nextProps, this.props) ||
     *       !equal(nextState, this.state) ||
     *       !equal(nextContext, this.context);
     *   }
     *
     * @param {object} nextProps
     * @param {?object} nextState
     * @param {?object} nextContext
     * @return {boolean} True if the component should update.
     * @optional
     */
    shouldComponentUpdate: 'DEFINE_ONCE',

    /**
     * Invoked when the component is about to update due to a transition from
     * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
     * and `nextContext`.
     *
     * Use this as an opportunity to perform preparation before an update occurs.
     *
     * NOTE: You **cannot** use `this.setState()` in this method.
     *
     * @param {object} nextProps
     * @param {?object} nextState
     * @param {?object} nextContext
     * @param {ReactReconcileTransaction} transaction
     * @optional
     */
    componentWillUpdate: 'DEFINE_MANY',

    /**
     * Invoked when the component's DOM representation has been updated.
     *
     * Use this as an opportunity to operate on the DOM when the component has
     * been updated.
     *
     * @param {object} prevProps
     * @param {?object} prevState
     * @param {?object} prevContext
     * @param {DOMElement} rootNode DOM element representing the component.
     * @optional
     */
    componentDidUpdate: 'DEFINE_MANY',

    /**
     * Invoked when the component is about to be removed from its parent and have
     * its DOM representation destroyed.
     *
     * Use this as an opportunity to deallocate any external resources.
     *
     * NOTE: There is no `componentDidUnmount` since your component will have been
     * destroyed by that point.
     *
     * @optional
     */
    componentWillUnmount: 'DEFINE_MANY',

    /**
     * Replacement for (deprecated) `componentWillMount`.
     *
     * @optional
     */
    UNSAFE_componentWillMount: 'DEFINE_MANY',

    /**
     * Replacement for (deprecated) `componentWillReceiveProps`.
     *
     * @optional
     */
    UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',

    /**
     * Replacement for (deprecated) `componentWillUpdate`.
     *
     * @optional
     */
    UNSAFE_componentWillUpdate: 'DEFINE_MANY',

    // ==== Advanced methods ====

    /**
     * Updates the component's currently mounted DOM representation.
     *
     * By default, this implements React's rendering and reconciliation algorithm.
     * Sophisticated clients may wish to override this.
     *
     * @param {ReactReconcileTransaction} transaction
     * @internal
     * @overridable
     */
    updateComponent: 'OVERRIDE_BASE'
  };

  /**
   * Similar to ReactClassInterface but for static methods.
   */
  var ReactClassStaticInterface = {
    /**
     * This method is invoked after a component is instantiated and when it
     * receives new props. Return an object to update state in response to
     * prop changes. Return null to indicate no change to state.
     *
     * If an object is returned, its keys will be merged into the existing state.
     *
     * @return {object || null}
     * @optional
     */
    getDerivedStateFromProps: 'DEFINE_MANY_MERGED'
  };

  /**
   * Mapping from class specification keys to special processing functions.
   *
   * Although these are declared like instance properties in the specification
   * when defining classes using `React.createClass`, they are actually static
   * and are accessible on the constructor instead of the prototype. Despite
   * being static, they must be defined outside of the "statics" key under
   * which all other static methods are defined.
   */
  var RESERVED_SPEC_KEYS = {
    displayName: function(Constructor, displayName) {
      Constructor.displayName = displayName;
    },
    mixins: function(Constructor, mixins) {
      if (mixins) {
        for (var i = 0; i < mixins.length; i++) {
          mixSpecIntoComponent(Constructor, mixins[i]);
        }
      }
    },
    childContextTypes: function(Constructor, childContextTypes) {
      if (true) {
        validateTypeDef(Constructor, childContextTypes, 'childContext');
      }
      Constructor.childContextTypes = _assign(
        {},
        Constructor.childContextTypes,
        childContextTypes
      );
    },
    contextTypes: function(Constructor, contextTypes) {
      if (true) {
        validateTypeDef(Constructor, contextTypes, 'context');
      }
      Constructor.contextTypes = _assign(
        {},
        Constructor.contextTypes,
        contextTypes
      );
    },
    /**
     * Special case getDefaultProps which should move into statics but requires
     * automatic merging.
     */
    getDefaultProps: function(Constructor, getDefaultProps) {
      if (Constructor.getDefaultProps) {
        Constructor.getDefaultProps = createMergedResultFunction(
          Constructor.getDefaultProps,
          getDefaultProps
        );
      } else {
        Constructor.getDefaultProps = getDefaultProps;
      }
    },
    propTypes: function(Constructor, propTypes) {
      if (true) {
        validateTypeDef(Constructor, propTypes, 'prop');
      }
      Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
    },
    statics: function(Constructor, statics) {
      mixStaticSpecIntoComponent(Constructor, statics);
    },
    autobind: function() {}
  };

  function validateTypeDef(Constructor, typeDef, location) {
    for (var propName in typeDef) {
      if (typeDef.hasOwnProperty(propName)) {
        // use a warning instead of an _invariant so components
        // don't show up in prod but only in __DEV__
        if (true) {
          warning(
            typeof typeDef[propName] === 'function',
            '%s: %s type `%s` is invalid; it must be a function, usually from ' +
              'React.PropTypes.',
            Constructor.displayName || 'ReactClass',
            ReactPropTypeLocationNames[location],
            propName
          );
        }
      }
    }
  }

  function validateMethodOverride(isAlreadyDefined, name) {
    var specPolicy = ReactClassInterface.hasOwnProperty(name)
      ? ReactClassInterface[name]
      : null;

    // Disallow overriding of base class methods unless explicitly allowed.
    if (ReactClassMixin.hasOwnProperty(name)) {
      _invariant(
        specPolicy === 'OVERRIDE_BASE',
        'ReactClassInterface: You are attempting to override ' +
          '`%s` from your class specification. Ensure that your method names ' +
          'do not overlap with React methods.',
        name
      );
    }

    // Disallow defining methods more than once unless explicitly allowed.
    if (isAlreadyDefined) {
      _invariant(
        specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
        'ReactClassInterface: You are attempting to define ' +
          '`%s` on your component more than once. This conflict may be due ' +
          'to a mixin.',
        name
      );
    }
  }

  /**
   * Mixin helper which handles policy validation and reserved
   * specification keys when building React classes.
   */
  function mixSpecIntoComponent(Constructor, spec) {
    if (!spec) {
      if (true) {
        var typeofSpec = typeof spec;
        var isMixinValid = typeofSpec === 'object' && spec !== null;

        if (true) {
          warning(
            isMixinValid,
            "%s: You're attempting to include a mixin that is either null " +
              'or not an object. Check the mixins included by the component, ' +
              'as well as any mixins they include themselves. ' +
              'Expected object but got %s.',
            Constructor.displayName || 'ReactClass',
            spec === null ? null : typeofSpec
          );
        }
      }

      return;
    }

    _invariant(
      typeof spec !== 'function',
      "ReactClass: You're attempting to " +
        'use a component class or function as a mixin. Instead, just use a ' +
        'regular object.'
    );
    _invariant(
      !isValidElement(spec),
      "ReactClass: You're attempting to " +
        'use a component as a mixin. Instead, just use a regular object.'
    );

    var proto = Constructor.prototype;
    var autoBindPairs = proto.__reactAutoBindPairs;

    // By handling mixins before any other properties, we ensure the same
    // chaining order is applied to methods with DEFINE_MANY policy, whether
    // mixins are listed before or after these methods in the spec.
    if (spec.hasOwnProperty(MIXINS_KEY)) {
      RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
    }

    for (var name in spec) {
      if (!spec.hasOwnProperty(name)) {
        continue;
      }

      if (name === MIXINS_KEY) {
        // We have already handled mixins in a special case above.
        continue;
      }

      var property = spec[name];
      var isAlreadyDefined = proto.hasOwnProperty(name);
      validateMethodOverride(isAlreadyDefined, name);

      if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
        RESERVED_SPEC_KEYS[name](Constructor, property);
      } else {
        // Setup methods on prototype:
        // The following member methods should not be automatically bound:
        // 1. Expected ReactClass methods (in the "interface").
        // 2. Overridden methods (that were mixed in).
        var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
        var isFunction = typeof property === 'function';
        var shouldAutoBind =
          isFunction &&
          !isReactClassMethod &&
          !isAlreadyDefined &&
          spec.autobind !== false;

        if (shouldAutoBind) {
          autoBindPairs.push(name, property);
          proto[name] = property;
        } else {
          if (isAlreadyDefined) {
            var specPolicy = ReactClassInterface[name];

            // These cases should already be caught by validateMethodOverride.
            _invariant(
              isReactClassMethod &&
                (specPolicy === 'DEFINE_MANY_MERGED' ||
                  specPolicy === 'DEFINE_MANY'),
              'ReactClass: Unexpected spec policy %s for key %s ' +
                'when mixing in component specs.',
              specPolicy,
              name
            );

            // For methods which are defined more than once, call the existing
            // methods before calling the new property, merging if appropriate.
            if (specPolicy === 'DEFINE_MANY_MERGED') {
              proto[name] = createMergedResultFunction(proto[name], property);
            } else if (specPolicy === 'DEFINE_MANY') {
              proto[name] = createChainedFunction(proto[name], property);
            }
          } else {
            proto[name] = property;
            if (true) {
              // Add verbose displayName to the function, which helps when looking
              // at profiling tools.
              if (typeof property === 'function' && spec.displayName) {
                proto[name].displayName = spec.displayName + '_' + name;
              }
            }
          }
        }
      }
    }
  }

  function mixStaticSpecIntoComponent(Constructor, statics) {
    if (!statics) {
      return;
    }

    for (var name in statics) {
      var property = statics[name];
      if (!statics.hasOwnProperty(name)) {
        continue;
      }

      var isReserved = name in RESERVED_SPEC_KEYS;
      _invariant(
        !isReserved,
        'ReactClass: You are attempting to define a reserved ' +
          'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
          'as an instance property instead; it will still be accessible on the ' +
          'constructor.',
        name
      );

      var isAlreadyDefined = name in Constructor;
      if (isAlreadyDefined) {
        var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)
          ? ReactClassStaticInterface[name]
          : null;

        _invariant(
          specPolicy === 'DEFINE_MANY_MERGED',
          'ReactClass: You are attempting to define ' +
            '`%s` on your component more than once. This conflict may be ' +
            'due to a mixin.',
          name
        );

        Constructor[name] = createMergedResultFunction(Constructor[name], property);

        return;
      }

      Constructor[name] = property;
    }
  }

  /**
   * Merge two objects, but throw if both contain the same key.
   *
   * @param {object} one The first object, which is mutated.
   * @param {object} two The second object
   * @return {object} one after it has been mutated to contain everything in two.
   */
  function mergeIntoWithNoDuplicateKeys(one, two) {
    _invariant(
      one && two && typeof one === 'object' && typeof two === 'object',
      'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
    );

    for (var key in two) {
      if (two.hasOwnProperty(key)) {
        _invariant(
          one[key] === undefined,
          'mergeIntoWithNoDuplicateKeys(): ' +
            'Tried to merge two objects with the same key: `%s`. This conflict ' +
            'may be due to a mixin; in particular, this may be caused by two ' +
            'getInitialState() or getDefaultProps() methods returning objects ' +
            'with clashing keys.',
          key
        );
        one[key] = two[key];
      }
    }
    return one;
  }

  /**
   * Creates a function that invokes two functions and merges their return values.
   *
   * @param {function} one Function to invoke first.
   * @param {function} two Function to invoke second.
   * @return {function} Function that invokes the two argument functions.
   * @private
   */
  function createMergedResultFunction(one, two) {
    return function mergedResult() {
      var a = one.apply(this, arguments);
      var b = two.apply(this, arguments);
      if (a == null) {
        return b;
      } else if (b == null) {
        return a;
      }
      var c = {};
      mergeIntoWithNoDuplicateKeys(c, a);
      mergeIntoWithNoDuplicateKeys(c, b);
      return c;
    };
  }

  /**
   * Creates a function that invokes two functions and ignores their return vales.
   *
   * @param {function} one Function to invoke first.
   * @param {function} two Function to invoke second.
   * @return {function} Function that invokes the two argument functions.
   * @private
   */
  function createChainedFunction(one, two) {
    return function chainedFunction() {
      one.apply(this, arguments);
      two.apply(this, arguments);
    };
  }

  /**
   * Binds a method to the component.
   *
   * @param {object} component Component whose method is going to be bound.
   * @param {function} method Method to be bound.
   * @return {function} The bound method.
   */
  function bindAutoBindMethod(component, method) {
    var boundMethod = method.bind(component);
    if (true) {
      boundMethod.__reactBoundContext = component;
      boundMethod.__reactBoundMethod = method;
      boundMethod.__reactBoundArguments = null;
      var componentName = component.constructor.displayName;
      var _bind = boundMethod.bind;
      boundMethod.bind = function(newThis) {
        for (
          var _len = arguments.length,
            args = Array(_len > 1 ? _len - 1 : 0),
            _key = 1;
          _key < _len;
          _key++
        ) {
          args[_key - 1] = arguments[_key];
        }

        // User is trying to bind() an autobound method; we effectively will
        // ignore the value of "this" that the user is trying to use, so
        // let's warn.
        if (newThis !== component && newThis !== null) {
          if (true) {
            warning(
              false,
              'bind(): React component methods may only be bound to the ' +
                'component instance. See %s',
              componentName
            );
          }
        } else if (!args.length) {
          if (true) {
            warning(
              false,
              'bind(): You are binding a component method to the component. ' +
                'React does this for you automatically in a high-performance ' +
                'way, so you can safely remove this call. See %s',
              componentName
            );
          }
          return boundMethod;
        }
        var reboundMethod = _bind.apply(boundMethod, arguments);
        reboundMethod.__reactBoundContext = component;
        reboundMethod.__reactBoundMethod = method;
        reboundMethod.__reactBoundArguments = args;
        return reboundMethod;
      };
    }
    return boundMethod;
  }

  /**
   * Binds all auto-bound methods in a component.
   *
   * @param {object} component Component whose method is going to be bound.
   */
  function bindAutoBindMethods(component) {
    var pairs = component.__reactAutoBindPairs;
    for (var i = 0; i < pairs.length; i += 2) {
      var autoBindKey = pairs[i];
      var method = pairs[i + 1];
      component[autoBindKey] = bindAutoBindMethod(component, method);
    }
  }

  var IsMountedPreMixin = {
    componentDidMount: function() {
      this.__isMounted = true;
    }
  };

  var IsMountedPostMixin = {
    componentWillUnmount: function() {
      this.__isMounted = false;
    }
  };

  /**
   * Add more to the ReactClass base class. These are all legacy features and
   * therefore not already part of the modern ReactComponent.
   */
  var ReactClassMixin = {
    /**
     * TODO: This will be deprecated because state should always keep a consistent
     * type signature and the only use case for this, is to avoid that.
     */
    replaceState: function(newState, callback) {
      this.updater.enqueueReplaceState(this, newState, callback);
    },

    /**
     * Checks whether or not this composite component is mounted.
     * @return {boolean} True if mounted, false otherwise.
     * @protected
     * @final
     */
    isMounted: function() {
      if (true) {
        warning(
          this.__didWarnIsMounted,
          '%s: isMounted is deprecated. Instead, make sure to clean up ' +
            'subscriptions and pending requests in componentWillUnmount to ' +
            'prevent memory leaks.',
          (this.constructor && this.constructor.displayName) ||
            this.name ||
            'Component'
        );
        this.__didWarnIsMounted = true;
      }
      return !!this.__isMounted;
    }
  };

  var ReactClassComponent = function() {};
  _assign(
    ReactClassComponent.prototype,
    ReactComponent.prototype,
    ReactClassMixin
  );

  /**
   * Creates a composite component class given a class specification.
   * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
   *
   * @param {object} spec Class specification (which must define `render`).
   * @return {function} Component constructor function.
   * @public
   */
  function createClass(spec) {
    // To keep our warnings more understandable, we'll use a little hack here to
    // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
    // unnecessarily identify a class without displayName as 'Constructor'.
    var Constructor = identity(function(props, context, updater) {
      // This constructor gets overridden by mocks. The argument is used
      // by mocks to assert on what gets mounted.

      if (true) {
        warning(
          this instanceof Constructor,
          'Something is calling a React component directly. Use a factory or ' +
            'JSX instead. See: https://fb.me/react-legacyfactory'
        );
      }

      // Wire up auto-binding
      if (this.__reactAutoBindPairs.length) {
        bindAutoBindMethods(this);
      }

      this.props = props;
      this.context = context;
      this.refs = emptyObject;
      this.updater = updater || ReactNoopUpdateQueue;

      this.state = null;

      // ReactClasses doesn't have constructors. Instead, they use the
      // getInitialState and componentWillMount methods for initialization.

      var initialState = this.getInitialState ? this.getInitialState() : null;
      if (true) {
        // We allow auto-mocks to proceed as if they're returning null.
        if (
          initialState === undefined &&
          this.getInitialState._isMockFunction
        ) {
          // This is probably bad practice. Consider warning here and
          // deprecating this convenience.
          initialState = null;
        }
      }
      _invariant(
        typeof initialState === 'object' && !Array.isArray(initialState),
        '%s.getInitialState(): must return an object or null',
        Constructor.displayName || 'ReactCompositeComponent'
      );

      this.state = initialState;
    });
    Constructor.prototype = new ReactClassComponent();
    Constructor.prototype.constructor = Constructor;
    Constructor.prototype.__reactAutoBindPairs = [];

    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));

    mixSpecIntoComponent(Constructor, IsMountedPreMixin);
    mixSpecIntoComponent(Constructor, spec);
    mixSpecIntoComponent(Constructor, IsMountedPostMixin);

    // Initialize the defaultProps property after all mixins have been merged.
    if (Constructor.getDefaultProps) {
      Constructor.defaultProps = Constructor.getDefaultProps();
    }

    if (true) {
      // This is a tag to indicate that the use of these method names is ok,
      // since it's used with createClass. If it's not, then it's likely a
      // mistake so we'll warn you to use the static property, property
      // initializer or constructor respectively.
      if (Constructor.getDefaultProps) {
        Constructor.getDefaultProps.isReactClassApproved = {};
      }
      if (Constructor.prototype.getInitialState) {
        Constructor.prototype.getInitialState.isReactClassApproved = {};
      }
    }

    _invariant(
      Constructor.prototype.render,
      'createClass(...): Class specification must implement a `render` method.'
    );

    if (true) {
      warning(
        !Constructor.prototype.componentShouldUpdate,
        '%s has a method called ' +
          'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
          'The name is phrased as a question because the function is ' +
          'expected to return a value.',
        spec.displayName || 'A component'
      );
      warning(
        !Constructor.prototype.componentWillRecieveProps,
        '%s has a method called ' +
          'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
        spec.displayName || 'A component'
      );
      warning(
        !Constructor.prototype.UNSAFE_componentWillRecieveProps,
        '%s has a method called UNSAFE_componentWillRecieveProps(). ' +
          'Did you mean UNSAFE_componentWillReceiveProps()?',
        spec.displayName || 'A component'
      );
    }

    // Reduce time spent doing lookups by setting these on the prototype.
    for (var methodName in ReactClassInterface) {
      if (!Constructor.prototype[methodName]) {
        Constructor.prototype[methodName] = null;
      }
    }

    return Constructor;
  }

  return createClass;
}

module.exports = factory;


/***/ }),

/***/ "jvHV":
/*!*************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.7.2/node_modules/prop-types/checkPropTypes.js ***!
  \*************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "BMHr");
  var loggedTypeFailures = {};
  var has = Function.call.bind(Object.prototype.hasOwnProperty);

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var React = __webpack_require__(/*! react */ "3wdl");
var createClass = __webpack_require__(/*! create-react-class */ "1FaY");
var PropTypes = __webpack_require__(/*! prop-types */ "R3cu");
React.React = React; // tslint:disable-line:no-any
React.React.createClass = createClass; // tslint:disable-line:no-any
React.React.PropTypes = PropTypes; // tslint:disable-line:no-any
module.exports = React;


/***/ }),

/***/ "sjay":
/*!*********************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/object-assign/4.1.1/node_modules/object-assign/index.js ***!
  \*********************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "xvdx":
/*!****************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/fbjs/0.8.17/node_modules/fbjs/lib/emptyFunction.js ***!
  \****************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * 
 */

function makeEmptyFunction(arg) {
  return function () {
    return arg;
  };
}

/**
 * This function accepts and discards inputs; it has no side effects. This is
 * primarily useful idiomatically for overridable function endpoints which
 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
 */
var emptyFunction = function emptyFunction() {};

emptyFunction.thatReturns = makeEmptyFunction;
emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
emptyFunction.thatReturnsNull = makeEmptyFunction(null);
emptyFunction.thatReturnsThis = function () {
  return this;
};
emptyFunction.thatReturnsArgument = function (arg) {
  return arg;
};

module.exports = emptyFunction;

/***/ }),

/***/ "ypis":
/*!************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/fbjs/0.8.17/node_modules/fbjs/lib/invariant.js ***!
  \************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */



/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var validateFormat = function validateFormat(format) {};

if (true) {
  validateFormat = function validateFormat(format) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  };
}

function invariant(condition, format, a, b, c, d, e, f) {
  validateFormat(format);

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(format.replace(/%s/g, function () {
        return args[argIndex++];
      }));
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
}

module.exports = invariant;

/***/ })

/******/ })});;
//# sourceMappingURL=react-16-bundle.js.map


define("f97266fb-ccb7-430e-9384-4124d05295d3_1.10.0", [], function() { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "/x7o":
/*!************************!*\
  !*** ./lib/virtual.js ***!
  \************************/
/*! exports provided: virtual */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "virtual", function() { return virtual; });
// tslint:disable:no-any
/**
 * This decorator is applied to a class's member function or property.
 * It indicates that the definition may optionally be overridden in a
 * child class.  Conversely, if the \@virtual decorator is NOT applied to
 * a definition, then child classes may NOT override it.
 * This decorator is currently used for documentation purposes only.
 * In the future, it may be enforced at runtime.
 *
 * @public
 */
function virtual(target, propertyKey, descriptor) {
    // Eventually we may implement runtime validation (e.g. in DEBUG builds)
    // but currently this decorator is only used by the build tools.
}


/***/ }),

/***/ "m0i/":
/*!*************************!*\
  !*** ./lib/override.js ***!
  \*************************/
/*! exports provided: override */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "override", function() { return override; });
// tslint:disable:no-any
/**
 * This decorator is applied to a class's member function or property.
 * It indicates that the definition overrides another defintion (of the same name)
 * from the base class.  The base class definition must be marked as \@virtual.
 * This decorator is currently used for documentation purposes only.
 * In the future, it may be enforced at runtime.
 *
 * @public
 */
function override(target, propertyKey, descriptor) {
    // Eventually we may implement runtime validation (e.g. in DEBUG builds)
    // but currently this decorator is only used by the build tools.
}


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: virtual, sealed, override */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _virtual__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./virtual */ "/x7o");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "virtual", function() { return _virtual__WEBPACK_IMPORTED_MODULE_0__["virtual"]; });

/* harmony import */ var _sealed__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sealed */ "ys2t");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sealed", function() { return _sealed__WEBPACK_IMPORTED_MODULE_1__["sealed"]; });

/* harmony import */ var _override__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./override */ "m0i/");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "override", function() { return _override__WEBPACK_IMPORTED_MODULE_2__["override"]; });

/**
 * A conservative set of decorators intended for use in both NodeJS and web browser projects.
 *
 * @remarks
 * This package provides a small set of decorators that enable more rigorous specification
 * of API contracts when using the TypeScript language.  The intent is to better document
 * expected behaviors and catch common mistakes.  This package is not intended to be a
 * general toolkit of language extensions or helpful macros.
 *
 * @packagedocumentation
 */





/***/ }),

/***/ "ys2t":
/*!***********************!*\
  !*** ./lib/sealed.js ***!
  \***********************/
/*! exports provided: sealed */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sealed", function() { return sealed; });
/**
 * This decorator is applied to a class (but NOT member function or property).
 * It indicates that subclasses must not inherit from this class.
 * This decorator is currently used for documentation purposes only.
 * In the future, it may be enforced at runtime.
 *
 * @public
 */
function sealed(target) {
    // Eventually we may implement runtime validation (e.g. in DEBUG builds)
    // but currently this decorator is only used by the build tools.
}


/***/ })

/******/ })});;
//# sourceMappingURL=decorators.js.map


define("467dc675-7cc5-4709-8aac-78e3b71bd2f6_1.10.0", ["@microsoft/decorators","@microsoft/load-themed-styles","@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-dynamic-data","@microsoft/sp-http","@microsoft/sp-lodash-subset","@microsoft/sp-page-context"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_decorators__, __WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__) { return /******/ (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 = "./sp-component-base.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_/GZrHjuQO4erDQbBRI2XSA": {
      "SourceAlreadyInitialized": "***Source has already been initialized.",
      "NoSendEventWhenAllowedEventsIsNonEmpty": "***\"sendEvent()\" must be defined, when the \"allowedEvents()\" returns a non-empty value.",
      "DynamicDataSourceManagerIsDisposed": "***Dynamic Data Source Manager has been disposed.",
      "DynamicDataSourceManagerIsNotInitialized": "***Dynamic Data Source Manager has not been initialized.",
      "DynamicDataSourceIsNotInitialized": "***Dynamic Data Source has not been initialized.",
      "InvalidEvent": "***\"{0}\" event is not allowed on the source \"{1}\""
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-component-base.js":
/*!******************************!*\
  !*** ./sp-component-base.js ***!
  \******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @microsoft/sp-dynamic-data */ "@microsoft/sp-dynamic-data"),__webpack_require__(/*! @microsoft/sp-lodash-subset */ "@microsoft/sp-lodash-subset"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-page-context */ "@microsoft/sp-page-context"),__webpack_require__(/*! @microsoft/load-themed-styles */ "@microsoft/load-themed-styles"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! @microsoft/sp-http */ "@microsoft/sp-http"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js"),__webpack_require__(/*! @microsoft/decorators */ "@microsoft/decorators")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE__84nK__, __WEBPACK_EXTERNAL_MODULE_Pk8u__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_X_PM__, __WEBPACK_EXTERNAL_MODULE_jOlS__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vlQI__, __WEBPACK_EXTERNAL_MODULE_vpy3__, __WEBPACK_EXTERNAL_MODULE_wxtz__) { return /******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"sp-component-base": 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "chunk." + ({"legacy-third-party-fabric-core-localfont":"legacy-third-party-fabric-core-localfont"}[chunkId]||chunkId) + "_" + {"legacy-third-party-fabric-core-localfont":"f389ac2460131545a716"}[chunkId] + ".js"
/******/ 	}
/******/
/******/ 	// 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;
/******/ 	}
/******/
/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
/******/ 		var promises = [];
/******/
/******/
/******/ 		// JSONP chunk loading for javascript
/******/
/******/ 		var installedChunkData = installedChunks[chunkId];
/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ 			// a Promise means "currently loading".
/******/ 			if(installedChunkData) {
/******/ 				promises.push(installedChunkData[2]);
/******/ 			} else {
/******/ 				// setup Promise in chunk cache
/******/ 				var promise = new Promise(function(resolve, reject) {
/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ 				});
/******/ 				promises.push(installedChunkData[2] = promise);
/******/
/******/ 				// start chunk loading
/******/ 				var script = document.createElement('script');
/******/ 				var onScriptComplete;
/******/
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.src = jsonpScriptSrc(chunkId);
/******/
/******/ 				// create error before stack unwound to get useful stacktrace later
/******/ 				var error = new Error();
/******/ 				onScriptComplete = function (event) {
/******/ 					// avoid mem leaks in IE.
/******/ 					script.onerror = script.onload = null;
/******/ 					clearTimeout(timeout);
/******/ 					var chunk = installedChunks[chunkId];
/******/ 					if(chunk !== 0) {
/******/ 						if(chunk) {
/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 							var realSrc = event && event.target && event.target.src;
/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 							error.name = 'ChunkLoadError';
/******/ 							error.type = errorType;
/******/ 							error.request = realSrc;
/******/ 							chunk[1](error);
/******/ 						}
/******/ 						installedChunks[chunkId] = undefined;
/******/ 					}
/******/ 				};
/******/ 				var timeout = setTimeout(function(){
/******/ 					onScriptComplete({ type: 'timeout', target: script });
/******/ 				}, 120000);
/******/ 				script.onerror = script.onload = onScriptComplete;
/******/ 				document.head.appendChild(script);
/******/ 			}
/******/ 		}
/******/ 		return Promise.all(promises);
/******/ 	};
/******/
/******/ 	// 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 = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonp_467dc675_7cc5_4709_8aac_78e3b71bd2f6_1_10_0"] = window["webpackJsonp_467dc675_7cc5_4709_8aac_78e3b71bd2f6_1_10_0"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Set the webpack public path
/******/ 	(function () {
/******/ 	  var scripts = document.getElementsByTagName('script');
/******/ 	  var regex = (typeof spScriptNamePattern !== 'undefined') ? spScriptNamePattern : new RegExp('\\/sp-component-base(_[a-z0-9-]+)*\\.js', 'i');
/******/ 	  var publicPath;
/******/ 	
/******/ 	  if (scripts && scripts.length) {
/******/ 	    for (var i = 0; i < scripts.length; i++) {
/******/ 	      if (!scripts[i]) continue;
/******/ 	      var path = scripts[i].getAttribute('src');
/******/ 	      if (path && path.match(regex)) {
/******/ 	        publicPath = path.substring(0, path.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	
/******/ 	  if (!publicPath) {
/******/ 	    for (var global in window.__setWebpackPublicPathLoaderSrcRegistry__) {
/******/ 	      if (global && global.match(regex)) {
/******/ 	        publicPath = global.substring(0, global.lastIndexOf('/') + 1);
/******/ 	        break;
/******/ 	      }
/******/ 	    }
/******/ 	  }
/******/ 	  __webpack_require__.p = publicPath;
/******/ 	})();
/******/ 	
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "+NTl":
/*!********************************!*\
  !*** ./lib/DynamicProperty.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-dynamic-data */ "84nK");
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DynamicDataProvider */ "LUHn");




/**
 * Serializable object that simplifies usage of a DynamicProperty.
 *
 * @remarks
 * This is built for usage in web part properties, and modified through the property pane.
 * Can be initialized with a default callback.
 * Web parts initialize with the render method so if the 3rd party developer does nothing, a change in the
 * DynamicProperty will re-render the web part automatically.
 *
 * @public
 */
var DynamicProperty = /** @class */ (function () {
    /**
     * Create a new DynamicProperty object.
     * @param provider - DynamicDataProvider.
     * @param callback - Optional. Default callback to be registered for updates in the DynamicDataSource.
     */
    function DynamicProperty(provider, callback) {
        this._hasValue = false;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(provider, 'provider');
        // tslint:disable-next-line:no-string-literal
        this['__type'] = DynamicProperty._TYPE_NAME;
        this._provider = provider;
        this._callbacks = new Set();
        this._pendingCallbacks = new Set();
        if (callback) {
            // The default callback will be added once a source is configured
            this._pendingCallbacks.add(callback);
            this._defaultCallback = callback;
        }
        else {
            this._defaultCallback = undefined;
        }
        this._onSourcesChanged = this._onSourcesChangedCallback.bind(this);
        this._cloneDeep = this._cloneDeep.bind(this);
        this._provider.registerAvailableSourcesChanged(this._onSourcesChanged);
    }
    /**
     * Sets the value of the DynamicProperty to be a reference to a DynamicDynamicSource
     * and property.  The reference is of the form `<source>:<property>:<path>`.
     * @param reference - Id of the DynamicDataSource and property.
     */
    DynamicProperty.prototype.setReference = function (reference) {
        var _this = this;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(reference, 'id');
        this._value = undefined;
        this._hasValue = false;
        // Potentially changing the source. Remove all callbacks, change the source, and add callbacks again.
        var callbacks = new Set();
        this._callbacks.forEach(function (callback) { return callbacks.add(callback); });
        this._callbacks.forEach(function (callback) { return _this.unregister(callback); });
        this._reference = new _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__["DynamicDataReference"](reference);
        this._sourceId = this._getSourceId();
        callbacks.forEach(function (callback) { return _this.register(callback); });
        // The source has changed, so act if a new source was added
        this._onSourcesChangedCallback();
    };
    /**
     * Sets a static value in the DynamicProperty.
     * @param value - Value for the DynamicProperty.
     */
    DynamicProperty.prototype.setValue = function (value) {
        var _this = this;
        // Removing the source. Remove all callback, set the value, and add the callback again so they are not lost.
        // Callbacks will be stored in the pending callbacks list.
        var callbacks = this._callbacks;
        callbacks.forEach(function (callback) { return _this.unregister(callback); });
        this._value = value;
        this._reference = undefined;
        this._sourceId = undefined;
        this._hasValue = true;
        callbacks.forEach(function (callback) { return _this.register(callback); });
    };
    Object.defineProperty(DynamicProperty.prototype, "isDisposed", {
        /**
         * {@inheritDoc @microsoft/sp-core-library#IDisposable.isDisposed}
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * {@inheritDoc @microsoft/sp-core-library#IDisposable.dispose}
     */
    DynamicProperty.prototype.dispose = function () {
        var _this = this;
        if (!this._isDisposed) {
            this._provider.unregisterAvailableSourcesChanged(this._onSourcesChanged);
            if (this._defaultCallback) {
                this.unregister(this._defaultCallback);
                delete this._defaultCallback;
            }
            this._callbacks.forEach(function (callback) { return _this.unregister(callback); });
            delete this._callbacks;
            delete this._onSourcesChanged;
            delete this._pendingCallbacks;
            delete this._provider;
            delete this._reference;
            delete this._sourceId;
            this._isDisposed = true;
        }
    };
    /**
     * Returns a serializable version of the object.
     * To be used when `JSON.stringify()` is called on the object (i.e. during Web Part serialization)
     *
     * @remarks
     * This doesn't follow the naming rule for internal methods because the JavaScript engine needs this exact name.
     *
     * @internal
     */
    DynamicProperty.prototype.toJSON = function () {
        if (this._hasValue) {
            return {
                __type: DynamicProperty._TYPE_NAME,
                value: this._value
            };
        }
        else {
            return {
                __type: DynamicProperty._TYPE_NAME,
                reference: this._reference
            };
        }
    };
    Object.defineProperty(DynamicProperty.prototype, "reference", {
        /**
         * DynamicDataReference string that the DynamicProperty object points to.
         * The reference is of the form `<source>:<property>:<path>`.
         *
         * @remarks
         * If the DynamicProperty is set up with static data, this returns undefined.
         */
        get: function () {
            return this._hasValue ? undefined : this._reference.reference;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicProperty.prototype, "value", {
        /**
         * Returns the value of the DynamicProperty object, if it has a non-dynamic value.
         * Used for serialization purposes. The proper API to access the value of the object is `tryGetValue()`
         *
         * @internal
         */
        get: function () {
            return this._value;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns the value of the object.
     *
     * @remarks
     * If the value is an array, then the first element of the array is returned;
     * otherwise, the value itself is returned.
     *
     * NOTE: This api will never return an array.  To retrieve an array value,
     * use the {@link DynamicProperty.tryGetValues} API.
     *
     * @returns the value associated with the dynamic property or
     * undefined if the source or the data doesn't exist.
     */
    DynamicProperty.prototype.tryGetValue = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        var value = this._getData();
        if (Array.isArray(value)) {
            value = value[0];
        }
        return value;
    };
    /**
     * Returns the value of the object.
     *
     * @remarks
     * If the value is NOT an array, then an array is returned with the value being the single entry;
     * otherwise, the value itself is returned.  If the property is undefined or cannot be found,
     * an empty array will be returned.
     *
     * NOTE: This api will always return an array and it assumes that the array is homogeneous.
     * To retrieve a non-array value, use the {@link DynamicProperty.tryGetValue} API.
     *
     * @returns the value associated with the dynamic property or
     * an empty array if the source or the data doesn't exist.
     */
    DynamicProperty.prototype.tryGetValues = function () {
        // tslint:disable-next-line:no-any
        var value = this._getData();
        // OK, time for some massaging of the return.
        if (value) {
            // If there is a value returned, but it isn't an array, create an array and
            // make this the return value the sole contents of the array
            if (!Array.isArray(value)) {
                value = [value];
            }
        }
        else {
            // In this case, we are saying that there is no value.  For this scenario
            // we simply return an empty array.
            value = [];
        }
        return value;
    };
    /**
     * Returns the DynamicDataSource that the DynamicProperty object refers to.
     * Returns undefined if the source doesn't exist.
     */
    DynamicProperty.prototype.tryGetSource = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        return this._hasValue ? undefined : this._provider.tryGetSource(this._sourceId);
    };
    /**
     * Registers a callback function for updates on the associated DynamicDataSource.
     * @param callback - Callback function to register.
     */
    DynamicProperty.prototype.register = function (callback) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        if (!this._hasValue && this._sourceId && !!this._provider.tryGetSource(this._sourceId)) {
            this._provider.registerPropertyChanged(this._sourceId, this._getPropertyToRegister(), callback);
            this._callbacks.add(callback);
        }
        else {
            this._pendingCallbacks.add(callback);
        }
    };
    /**
     * Unregisters a callback function for updates on the associated DynamicDataSource.
     * The callback function must be the same it was registered with.
     * @param callback - Callback function to unregister.
     */
    DynamicProperty.prototype.unregister = function (callback) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        if (!this._hasValue && this._sourceId && !!this._provider.tryGetSource(this._sourceId)) {
            this._provider.unregisterPropertyChanged(this._sourceId, this._getPropertyToRegister(), callback);
        }
        this._pendingCallbacks.delete(callback);
        this._callbacks.delete(callback);
    };
    /**
     * Returns true if the object has a default callback.
     */
    DynamicProperty.prototype.hasDefaultCallback = function () {
        return !!this._defaultCallback;
    };
    /**
     * Removes the registration for the default callback.
     *
     * @remarks
     * This can be useful for advanced users who only want their custom callbacks.
     */
    DynamicProperty.prototype.removeDefaultCallback = function () {
        if (this._defaultCallback) {
            this.unregister(this._defaultCallback);
            this._defaultCallback = undefined;
        }
    };
    /**
     * Returns the id of the DynamicDataSource if the DynamicProperty has a reference set.
     *
     * @internal
     */
    DynamicProperty.prototype._getSourceId = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        return this._hasValue ? '' : this._reference.sourceId;
    };
    /**
     * Returns the property name of the DynamicDataSource that the DynamicProperty points to.
     *
     * NOTE: This is accessed from the property pane code while building the DynamicDataWidget.
     * @internal
     */
    DynamicProperty.prototype._getProperty = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        return this._hasValue ? '' : this._reference.property;
    };
    /**
     * Returns the path from the property that the object points to, if applicable.
     * If not applicable, returns an empty string.
     *
     * @internal
     */
    DynamicProperty.prototype._getPropertyPath = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        return this._hasValue ? '' : this._reference.propertyPath || '';
    };
    /**
     * Returns a deep cloned version of the current instance.
     *
     * @remarks
     * Since the dynamic property is maintaining an instance of the DynamicDataProvider,
     * which which when serialized will result in 'Maximum call stack size exceeded' based
     * on what kind of sources they hold references to.
     *
     * For example, if the dynamicDataProvider is holding PageContext source, which internally
     * has serviceScope in its state. Deep cloning this source would result in the above mentioned
     * error.
     *
     * Hence we would want to just clone the dynamicDataProvider not deep clone it.
     *
     * @returns - Custom deep Cloned version of the current instance.
     *
     * @internal
     */
    // tslint:disable-next-line:no-any
    DynamicProperty.prototype._cloneDeep = function (instance) {
        return _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_0__["cloneDeepWith"](instance, function (prop) {
            if (prop instanceof _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_3__["default"]) {
                return prop;
            }
        });
    };
    /**
     * Returns the property name of the DynamicDataSource that the DynamicProperty points to.
     *
     * @remarks
     * Removes the array notation from the property name, if any, before it is being registered.
     * This is to avoid any mismatch between the strings passed by the source when it notifies
     * a property change, as the source doesn't pass any array notation with the property name.
     * Array notation is only for internal representaion, for a property whose value is an array type.
     */
    DynamicProperty.prototype._getPropertyToRegister = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        // Split the property string on the array notation to get
        // the property name. If the array notation is not present,
        // then the original string is returned in the array.
        return this._getProperty().split(DynamicProperty._arrayRegex)[0];
    };
    /**
     * Callback when the DynamicDataSources list changes.
     * It registers the pending callbacks into the DynamicDataProvidere.
     */
    DynamicProperty.prototype._onSourcesChangedCallback = function () {
        var _this = this;
        if (!this._hasValue && this._sourceId && !!this._provider.tryGetSource(this._sourceId)) {
            var callbacksToAdd = this._pendingCallbacks;
            this._pendingCallbacks = new Set();
            callbacksToAdd.forEach(function (callback) {
                _this.register(callback);
                callback();
            });
        }
    };
    DynamicProperty.prototype._getData = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotDisposed(this, 'DynamicData');
        return this._hasValue ? this._value : this._provider._getData(this._reference);
    };
    /**
     * Constant with the type name of the DynamicProperty.
     * @internal
     */
    DynamicProperty._TYPE_NAME = 'DynamicProperty';
    DynamicProperty._arrayRegex = new RegExp(/\[\*\]$/);
    return DynamicProperty;
}());
/* harmony default export */ __webpack_exports__["default"] = (DynamicProperty);


/***/ }),

/***/ "+ORw":
/*!************************************!*\
  !*** ./lib/common/KillSwitches.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);

/**
 * @internal
 */
var KillSwitches = /** @class */ (function () {
    function KillSwitches() {
    }
    /**
     * Killswitch to safe guard dynamic data beta apis.
     */
    KillSwitches.isDynamicDataGetPropertyValueKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('da3884a2-af48-4d82-b18e-4904e5950fb3'), '08/30/2018', 'Safe guarding the dynamic data beta api - getPropertyValue');
    };
    /**
     * Killswitch to safe guard the logic to force load the legacy fabric css for
     * third party components.
     */
    KillSwitches.isStopLoadingLegacyFabricCSSKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('57b771ed-2b57-41c2-aaaa-0e21c587c6dc'), '02/21/2019', 'Stop loading legacy fabric css on newer 3rd party components');
    };
    /**
     * Killswitch to fix an issue where if the dynamic data value returned has cascading
     * arrays, quering for a property, of type array, multiples levels inside, is not returning
     * correct data.
     */
    KillSwitches.isFixingCascadingArraysinDynamicDataKillSwitchActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('1549b8ee-81b7-4c30-ab6f-e802342edb74'), '08/19/2019', 'Fix cascading arrays in dynamic data property values.');
    };
    /** Indicates whether or not the kill switch to disable having preallocated placeholders
    * for application customizers.
    */
    KillSwitches.isPreallocatedPlaceholdersforApplicationCustomizersKSActive = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('1c3df98e-4897-4682-87f1-f3eac5f9c71b'), '08/29/2019', 'Disable preallocated placeholders for application customizers');
    };
    KillSwitches.isAddSpecificityToLegacyWebPartKSActivated = function () {
        return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPKillSwitch"].isActivated(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].parse('85414001-4b2b-4b68-9a3a-3fafc7635a18'), '11/19/2019', 'Add a ms-SPLegacyWebPart class to legacy web part');
    };
    return KillSwitches;
}());
/* harmony default export */ __webpack_exports__["default"] = (KillSwitches);


/***/ }),

/***/ "84nK":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__84nK__;

/***/ }),

/***/ "E99v":
/*!*******************************!*\
  !*** ./lib/ShimmerFactory.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _styles_shimmer_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles/shimmer.module.scss */ "OGZ7");

// These constants are taken from generic shimmer design.
var SHIMMER_WIDTH_DEFAULT = 100;
var SHIMMER_HEIGHT_DEFAULT = 100;
var SHIMMER_RECTANGLE_HEIGHT_MAX = 16;
var SHIMMER_RECTANGLE_COUNT = 4;
var SHIMMER_ELEMENT_COUNT = 2 * SHIMMER_RECTANGLE_COUNT + 1;
var RECTANGLE_X = 8;
var SHIMMER_MAIN_RECTANGLE_SIZE_RATIO = 0.9;
var RECTANGLE_1_LENGTH = 20;
var RECTANGLE_2_LENGTH = 40;
var RECTANGLE_3_LENGTH = 90;
var RECTANGLE_4_LENGTH = 80;
/**
 * Class to create shimmers for applications.
 *
 * @internal
 */
var ShimmerFactory = /** @class */ (function () {
    function ShimmerFactory() {
    }
    /**
     *  Method that creates a shimmer for applications using an svg.
     * @param width - Width of the shimmer
     * @param height - Height of the shimmer
     * @param componentTag - ID for the shimmer
     * @param loadingMessage - Displays message when the shimmer loads
     */
    ShimmerFactory.createShimmer = function (width, height, componentTag, loadingMessage, containerMargin) {
        if (containerMargin === void 0) { containerMargin = undefined; }
        width = width || SHIMMER_WIDTH_DEFAULT;
        height = height || SHIMMER_HEIGHT_DEFAULT;
        var shimmerContainerDiv = document.createElement('div');
        shimmerContainerDiv.className = _styles_shimmer_module_scss__WEBPACK_IMPORTED_MODULE_0__["default"].shimmerContainer;
        var shimmerDiv = document.createElement('div');
        var mainRectangleHeight = height * SHIMMER_MAIN_RECTANGLE_SIZE_RATIO;
        var rectangleHeight = mainRectangleHeight / SHIMMER_ELEMENT_COUNT;
        rectangleHeight = Math.min(SHIMMER_RECTANGLE_HEIGHT_MAX, rectangleHeight);
        var gap = 2 * rectangleHeight;
        var rectangle1Y = rectangleHeight;
        var rectangle2Y = rectangle1Y + gap;
        var rectangle3Y = rectangle2Y + gap;
        var rectangle4Y = rectangle3Y + gap;
        var className = _styles_shimmer_module_scss__WEBPACK_IMPORTED_MODULE_0__["default"].shimmerElementFill;
        /* tslint:disable:max-line-length */
        shimmerDiv.innerHTML =
            "<svg width=" + width + " height=" + height + " viewBox=\"0 0 " + width + " " + height + "\" version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n        <title>" + loadingMessage + "</title>\n        <g id=" + componentTag + "_Shimmer stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <rect x=\"0\" y=\"0\" width=" + width + " height=" + height + "></rect>\n          " + ShimmerFactory._shimmerRect(componentTag + '_1', className, RECTANGLE_X, rectangle1Y, RECTANGLE_1_LENGTH, rectangleHeight) + "\n          " + ShimmerFactory._shimmerRect(componentTag + '_2', className, RECTANGLE_X, rectangle2Y, RECTANGLE_2_LENGTH, rectangleHeight) + "\n          " + ShimmerFactory._shimmerRect(componentTag + '_3', className, RECTANGLE_X, rectangle3Y, RECTANGLE_3_LENGTH, rectangleHeight) + "\n          " + ShimmerFactory._shimmerRect(componentTag + '_4', className, RECTANGLE_X, rectangle4Y, RECTANGLE_4_LENGTH, rectangleHeight) + "\n        </g>\n      </svg>";
        if (containerMargin !== undefined) {
            shimmerContainerDiv.style.margin = containerMargin + '';
        }
        /* tslint:enable:max-line-length */
        shimmerContainerDiv.appendChild(shimmerDiv);
        var shimmerAccessibilityContainerDiv = document.createElement('div');
        shimmerAccessibilityContainerDiv.setAttribute('role', 'status');
        shimmerAccessibilityContainerDiv.setAttribute('aria-live', 'polite');
        shimmerContainerDiv.appendChild(shimmerAccessibilityContainerDiv);
        return shimmerContainerDiv;
    };
    ShimmerFactory._shimmerRect = function (id, className, x, y, width, height) {
        return "<rect id=" + id + " class=" + className + " x=" + x + " y=" + y + " width=\"" + width + "%\" height=" + height + ">\n      <animate\n      attributeName=\"opacity\"\n      dur=\"1s\"\n      values=\"0.2;0.5;0.9\"\n      repeatCount=\"indefinite\"\n      begin=\"0\"/>\n    </rect>";
    };
    return ShimmerFactory;
}());
/* harmony default export */ __webpack_exports__["default"] = (ShimmerFactory);


/***/ }),

/***/ "HJNy":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/cjs.js!C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/postcss-loader/3.0.0/node_modules/postcss-loader/src??postcss!./lib/styles/shimmer.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/runtime/api.js */ "j2/K")(false);
// Module
exports.push([module.i, ".shimmerContainer_0558e041{position:relative;width:100%;margin:5px;height:100%;background-color:transparent}.shimmerElementFill_0558e041{fill:#f4f4f4}", ""]);



/***/ }),

/***/ "He8Z":
/*!***************************************!*\
  !*** ./lib/styles/shimmer.module.css ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/cjs.js!../../../../common/temp/node_modules/.onedrive.pkgs.visualstudio.com/postcss-loader/3.0.0/node_modules/postcss-loader/src??postcss!./shimmer.module.css */ "HJNy");
var loader = __webpack_require__(/*! @microsoft/load-themed-styles */ "jOlS");

if(typeof content === "string") content = [[module.i, content]];

// add the styles to the DOM
for (var i = 0; i < content.length; i++) loader.loadStyles(content[i][1], true);

if(content.locals) module.exports = content.locals;

/***/ }),

/***/ "LUHn":
/*!************************************!*\
  !*** ./lib/DynamicDataProvider.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-dynamic-data */ "84nK");
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/KillSwitches */ "+ORw");






/**
 * The Dynamic Data Provider allows components to consume Dynamic Data.
 * It allows components to request Dynamic Data sources and register/unregister to those.
 *
 * @public
 */
var DynamicDataProvider = /** @class */ (function () {
    function DynamicDataProvider() {
        this._isDisposed = false;
        this._isInitialized = false;
        this._isSourcesChangedEventListenerAdded = false;
    }
    /**
     * Initializes the Dynamic Data Provider for a specific component.
     *
     * @param component - Component that is going to use the Dynamic Data Provider.
     *
     * @internal
     */
    DynamicDataProvider.prototype._initialize = function (component, serviceScope) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(component, 'component');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._component = component;
        // Initialize all the required datastructures
        this._pendingRegistrations = new Set();
        this._dynamicDataManager = serviceScope.consume(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__["_DynamicDataUtilities"].IDynamicDataManagerServiceKey);
        this._isInitialized = true;
        // Method bindings
        this._onSourcesChanged = this._onSourcesChanged.bind(this);
    };
    /**
     * Disposes the Dynamic Data Provider.
     */
    DynamicDataProvider.prototype.dispose = function () {
        if (!this._isDisposed) {
            delete this._pendingRegistrations;
            this._dynamicDataManager.sourcesChangedEvent.remove(this._component, this._onSourcesChanged);
            delete this._dynamicDataManager;
            delete this._component;
            this._isInitialized = false;
            this._isDisposed = true;
        }
    };
    Object.defineProperty(DynamicDataProvider.prototype, "isDisposed", {
        /**
         * Returns true if the Dynamic Data Provider is disposed.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicDataProvider.prototype, "_dynamicDataSourceId", {
        /**
         * Returns the dynamic data source id for the current instance of the component.
         * @internal
         */
        get: function () {
            return this._component._dynamicDataSourceId;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Registers a callback for updates when a Dynamic Data source is changed.
     * This happens when any property is updated within the source.
     *
     * @privateRemarks
     * We register the source, only if the source is available else defer the registration
     * to when the availableSources change.
     *
     * @param sourceId - Id of the Dynamic Data Source.
     * @param callback - Function to execute when the source updates its data.
     */
    DynamicDataProvider.prototype.registerSourceChanged = function (sourceId, callback) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        var availableSourceIds = this.getAvailableSources().map(function (source) { return source.id; });
        if (availableSourceIds.indexOf(sourceId) !== -1) { // requested source is available
            this._dynamicDataManager.registerSourceChanged(sourceId, this._component, callback);
            this._logFeatureEntry('RegisterSourceChanged', { 'sourceId': sourceId });
        }
        else { // requested source is NOT available
            this._addPendingRegistration({ id: sourceId, callback: callback });
        }
    };
    /**
     * Unregisters a callback for updates when a Dynamic Data source is changed.
     *
     * @param sourceId - Id of the Dynamic Data Source.
     * @param callback - Function to remove from the registration. Must be the same it was registered with.
     */
    DynamicDataProvider.prototype.unregisterSourceChanged = function (sourceId, callback) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        var registration = { id: sourceId, callback: callback };
        if (!this._pendingRegistrations.has(registration)) { // Source is already registered.
            this._dynamicDataManager.unregisterSourceChanged(sourceId, this._component, callback);
            this._logFeatureEntry('UnregisterSourceChanged', { 'sourceId': sourceId });
        }
        else { // Source is in pending state
            this._removePendingRegistration(registration);
        }
    };
    /**
     * Registers a callback for updates when a property is changed in a Dynamic Data source.
     *
     * @privateRemarks
     * We register the source, only if the source is available else defer the registration
     * to when the availableSources change.
     *
     * @param sourceId - Id of the Dynamic Data Source.
     * @param propertyId - Id of the property of the source.
     * @param callback - Function to execute when the source updates its data.
     */
    DynamicDataProvider.prototype.registerPropertyChanged = function (sourceId, propertyId, callback) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(propertyId, 'propertyId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        var availableSourceIds = this.getAvailableSources().map(function (source) { return source.id; });
        if (availableSourceIds.indexOf(sourceId) !== -1) { // requested source is available
            this._dynamicDataManager.registerPropertyChanged(sourceId, propertyId, this._component, callback);
            this._logFeatureEntry('RegisterPropertyChanged', { 'sourceId': sourceId, 'propertyId': propertyId });
        }
        else { // requested source is NOT available
            this._addPendingRegistration({ id: sourceId, propertyId: propertyId, callback: callback });
        }
    };
    /**
     * Unregisters a callback for updates when a property is changed in a Dynamic Data source.
     *
     * @privateRemarks
     * If the sourceId is present in _registeredSourcesForPropertyChanged then
     *    it removes from sourceID from the set _registeredSourcesForPropertyChanged and
     *    invokes unregisterPropertyChanged event on the DynamicDataManager
     *
     * else if the sourceId is present in _pendingSourcesForPropertyChanged then
     *    it just removes the sourceId from the set _pendingSourcesForPropertyChanged
     *
     * @param sourceId - Id of the Dynamic Data Source.
     * @param propertyId - Id of the property of the source.
     * @param callback - Function to remove from the registration. Must be the same it was registered with.
     */
    DynamicDataProvider.prototype.unregisterPropertyChanged = function (sourceId, propertyId, callback) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(sourceId, 'sourceId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(propertyId, 'propertyId');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        var registration = { id: sourceId, callback: callback, propertyId: propertyId };
        if (!this._pendingRegistrations.has(registration)) { // registration is in pending state.
            this._dynamicDataManager.unregisterPropertyChanged(sourceId, propertyId, this._component, callback);
            this._logFeatureEntry('UnregisterPropertyChanged', { 'sourceId': sourceId, 'propertyId': propertyId });
        }
        else { // Already registered.
            this._removePendingRegistration(registration);
        }
    };
    /**
     * Registers a callback to an event that raises when the list of available Dynamic Data Sources is updated.
     *
     * @param callback - Function to execute when the sources are updated.
     */
    DynamicDataProvider.prototype.registerAvailableSourcesChanged = function (callback) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        this._assertNotDisposed();
        this._assertInitialized();
        this._dynamicDataManager.sourcesChangedEvent.add(this._component, callback);
    };
    /**
     * Unregisters a callback to an event that raises when the list of available Dynamic Data Sources is updated.
     *
     * @privateRemarks
     * This api is used by the consumer of the dynamic data.
     *
     * @param callback - Function to remove from the registration. Must be the same it was registered with.
     */
    DynamicDataProvider.prototype.unregisterAvailableSourcesChanged = function (callback) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(callback, 'callback');
        this._assertNotDisposed();
        this._assertInitialized();
        this._dynamicDataManager.sourcesChangedEvent.remove(this._component, callback);
    };
    /**
     * Returns a list with all available Dynamic Data Sources.
     *
     * @returns Read-only array with all available sources.
     */
    DynamicDataProvider.prototype.getAvailableSources = function () {
        this._assertNotDisposed();
        this._assertInitialized();
        return this._dynamicDataManager.getSources();
    };
    /**
     * Returns a list of all the available Dynamic Data Sources which have same component id.
     *
     * @returns Read-only array of available sources with same component id.
     * @alpha
     */
    DynamicDataProvider.prototype.getAvailableSourcesByComponentId = function (componentId) {
        this._assertNotDisposed();
        this._assertInitialized();
        var sources = [];
        this._dynamicDataManager.getSources().forEach(function (source) {
            if (componentId.equals(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].tryParse(source.metadata.componentId) || _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Guid"].empty)) {
                sources.push(source);
            }
        });
        return sources;
    };
    /**
     * Returns a Dynamic Data Source, by its id.
     * If the source is not present, it returns undefined.
     *
     * @param id - Id of the Dynamic Data Source.
     */
    DynamicDataProvider.prototype.tryGetSource = function (id) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(id, 'id');
        return this._dynamicDataManager.tryGetSource(id);
    };
    /**
     * Returns specific data from a source based on a Dynamic Data reference.
     *
     * @param dataReference - Dynamic Data Reference.
     * @internal
     */
    DynamicDataProvider.prototype._getData = function (dataReference) {
        this._assertNotDisposed();
        this._assertInitialized();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(dataReference, 'dataReference');
        var dataSource = this._dynamicDataManager.tryGetSource(dataReference.sourceId);
        if (!dataSource) {
            return undefined;
        }
        var data = dataSource.getPropertyValue(dataReference.property); // tslint:disable-line:no-any
        if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_4__["default"].isDynamicDataGetPropertyValueKillSwitchActivated()) {
            if (data && dataReference.propertyPath) {
                // multiple levels of sub-properties are separated by '.' in the property path.
                var subpaths = dataReference.propertyPath.split('.');
                subpaths.forEach(function (subpath) {
                    // If sub-property yields to an array value, then the path to the sub-property
                    // will have [*] appended after the name of the sub-property.
                    // Hence separating out to get the subPropertyName.
                    var subpathElements = subpath.split(DynamicDataProvider._jsonPathArrayRegex);
                    var subProperty = subpathElements[0];
                    // If the supplied reference has an array([*]) notation, then we extract the data
                    // accordingly. [*] means all the entries and if there is a number instead of the '*'
                    // then extract that specific entry.
                    if (data) {
                        if (Array.isArray(data)) {
                            if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_4__["default"].isFixingCascadingArraysinDynamicDataKillSwitchActivated()) {
                                var dataItems_1 = []; /* tslint:disable-line:no-any */
                                data.forEach(function (item) {
                                    if (item.hasOwnProperty(subProperty)) {
                                        dataItems_1.push(item[subProperty]);
                                    }
                                });
                                /*
                                 * If a specific entry is asked, we return it else we return all the entries,
                                 * essentially it is treated as [*].
                                 */
                                var index = subpathElements[1];
                                if (subpathElements.length > 1) {
                                    /**
                                     * This means that the current subpath element is an array type, an array inside an array.
                                     * Since the subpath element is an array, we are normalizing the existing dataItems object
                                     * i.e., dataItems will have an array of array objects.
                                     */
                                    var tempDataItems_1 = []; /* tslint:disable-line:no-any */
                                    dataItems_1.forEach(function (dataItem) {
                                        dataItem.forEach(function (internalItem) { return tempDataItems_1.push(internalItem); });
                                    });
                                    dataItems_1 = tempDataItems_1;
                                }
                                if (!isNaN(parseInt(index, 10))) {
                                    data = dataItems_1[index];
                                }
                                else {
                                    data = dataItems_1;
                                }
                            }
                            else {
                                var dataItems_2 = []; /* tslint:disable-line:no-any */
                                data.forEach(function (item) {
                                    if (item.hasOwnProperty(subProperty)) {
                                        dataItems_2.push(item[subProperty]);
                                    }
                                });
                                // If a specific entry is asked, we return it else (essentially it is treated as [*])
                                // we return all the entries.
                                // Index variable below is typed as any because, it could either take
                                // a string for * in [*] or a number or undefined subpathElements length is < 1.
                                var index = subpathElements[1]; // tslint:disable-line:no-any
                                if (subpathElements.length && !isNaN(parseInt(index, 10))) {
                                    data = dataItems_2[index];
                                }
                                else {
                                    data = dataItems_2;
                                }
                            }
                        }
                        else if (data.hasOwnProperty(subProperty)) { // data is an object type
                            data = data[subProperty];
                        }
                        else {
                            // If the control is here, it means that the subProperty was not found in data.
                            // Hence the next iteration would get data as undefined.
                            data = undefined;
                        }
                    }
                });
            }
        }
        else { // KillSwitch Activated, falling back to old logic.
            if (dataReference.propertyPath) {
                var subpaths = dataReference.propertyPath.split('.');
                subpaths.forEach(function (subpath) {
                    var sps = subpath.split(DynamicDataProvider._jsonPathArrayRegex);
                    sps.forEach(function (sp) {
                        if (!!sp) {
                            data = data[sp];
                        }
                    });
                });
            }
        }
        return data;
    };
    DynamicDataProvider.prototype._onSourcesChanged = function () {
        var _this = this;
        var availableSourceIds = this.getAvailableSources().map(function (source) { return source.id; });
        // Registering to sourceChanged event
        this._pendingRegistrations.forEach(function (src) {
            // register to sourceChanged event, if the source is available and
            // the pending source does not have a propertyId on it.
            if (availableSourceIds.indexOf(src.id) !== -1 && !src.propertyId) { // Source is available
                if (!src.propertyId) { // No propertyId, means register to sourceChanged event.
                    _this._dynamicDataManager.registerSourceChanged(src.id, _this._component, src.callback);
                    _this._logFeatureEntry('RegisterSourceChanged', { 'sourceId': src.id });
                }
                else { // With propertyId, means register to propertyChanged event.
                    _this._dynamicDataManager.registerPropertyChanged(src.id, src.propertyId, _this._component, src.callback);
                    _this._logFeatureEntry('RegisterPropertyChanged', { 'sourceId': src.id, 'propertyId': src.propertyId });
                }
                _this._pendingRegistrations.delete(src);
            }
        });
    };
    DynamicDataProvider.prototype._assertNotDisposed = function () {
        if (this.isDisposed) {
            throw new Error('Dynamic Data Provider has been disposed');
        }
    };
    DynamicDataProvider.prototype._assertInitialized = function () {
        if (!this._isInitialized) {
            throw new Error('Dynamic Data Provider has not been initialized.');
        }
    };
    /**
     * Adds the registration to the pending registrations if not already added.
     * Also adds a listener to the _DynamicDataManager's sourcesChangedEvent.
     */
    DynamicDataProvider.prototype._addPendingRegistration = function (registration) {
        if (!this.isRegistrationPending(registration)) {
            this._pendingRegistrations.add({
                id: registration.id,
                propertyId: registration.propertyId,
                callback: registration.callback
            });
        }
        if (!this._isSourcesChangedEventListenerAdded) {
            this._dynamicDataManager.sourcesChangedEvent.add(this._component, this._onSourcesChanged);
            this._isSourcesChangedEventListenerAdded = true;
        }
    };
    /**
     * Removes the pending registration and then, if there are no more pending registrations
     * remove the 'sourcesChangedEvent' listener.
     */
    DynamicDataProvider.prototype._removePendingRegistration = function (registration) {
        this._pendingRegistrations.delete(registration);
        if (this._pendingRegistrations.size === 0) {
            this._dynamicDataManager.sourcesChangedEvent.remove(this._component, this._onSourcesChanged);
            this._isSourcesChangedEventListenerAdded = false;
        }
    };
    /**
     * Returns true if the incoming source is already added to the _pendingRegistrations set.
     *
     * @param incomingRegistration - registration to be checked.
     */
    DynamicDataProvider.prototype.isRegistrationPending = function (incomingRegistration) {
        var found = false;
        this._pendingRegistrations.forEach(function (existingRegistration) {
            if (Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["isEqual"])(existingRegistration, incomingRegistration)) {
                found = true;
            }
        });
        return found;
    };
    /**
     * Logs a feature event with any extra data from the producer of the event.
     * @param logFeature - Name of the feature to log.
     * @param contextualProps - Contextual log properties of the feature event.
     */
    DynamicDataProvider.prototype._logFeatureEntry = function (logFeature, contextualProps) {
        var isInternal = this._component.manifest.isInternal || false;
        var logProperties = {
            'alias': this._component.manifest.alias,
            'isInternal': isInternal.toString()
        };
        var logEntry = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogEntry"]('DynamicDataProvider', logFeature, _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogType"].Event, _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["merge"](logProperties, contextualProps));
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_EngagementLogger"].logEventWithLogEntry(logEntry);
    };
    /**
     * Regular expression to evaluate arrays in a json path expression.
     * @internal
     */
    DynamicDataProvider._jsonPathArrayRegex = new RegExp(/\[|\]/);
    return DynamicDataProvider;
}());
/* harmony default export */ __webpack_exports__["default"] = (DynamicDataProvider);


/***/ }),

/***/ "OGZ7":
/*!*******************************************!*\
  !*** ./lib/styles/shimmer.module.scss.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* tslint:disable */
__webpack_require__(/*! ./shimmer.module.css */ "He8Z");
var styles = {
    shimmerContainer: 'shimmerContainer_0558e041',
    shimmerElementFill: 'shimmerElementFill_0558e041'
};
/* harmony default export */ __webpack_exports__["default"] = (styles);
/* tslint:enable */ 


/***/ }),

/***/ "Pk8u":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_Pk8u__;

/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "UdP8":
/*!********************************************!*\
  !*** ./lib/themeProvider/ThemeProvider.js ***!
  \********************************************/
/*! exports provided: ThemeChangedEventArgs, ThemeProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeChangedEventArgs", function() { return ThemeChangedEventArgs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return ThemeProvider; });
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();

/**
 * The object passed when the IThemeProvider.themeChangedEvent is raised.
 *
 * @public
 */
var ThemeChangedEventArgs = /** @class */ (function (_super) {
    __extends(ThemeChangedEventArgs, _super);
    function ThemeChangedEventArgs() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ThemeChangedEventArgs;
}(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEventArgs"]));

/**
 * The ThemeProvider class provides the capability to get different themes from the Framework. Themes can be provided
 * in different contexts, e.g. Canvas sections may provide a variant of the global theme in some contexts.
 *
 * @public
 */
var ThemeProvider = /** @class */ (function () {
    /**
     * Construct a new instance of the ThemeProvider class.
     *
     * @param serviceScope - The current service scope.
     * @param theme - Theme to provide.
     */
    function ThemeProvider(serviceScope, theme) {
        this._id = ThemeProvider._instanceCount++;
        this.themeChangedEvent = new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["SPEvent"](this._themeChangedEventName);
        if (theme) {
            this._theme = Object.freeze(theme);
        }
    }
    Object.defineProperty(ThemeProvider.prototype, "_themeChangedEventName", {
        get: function () {
            return ThemeProvider._themeChangedEventNameLiteral + this._id;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Clear the currently set theme and raise the themeChangedEvent.
     *
     * @internal
     */
    ThemeProvider.prototype._clearTheme = function () {
        this._theme = undefined;
        this._raiseEvent();
    };
    /**
     * Change the theme and raise the themeChangedEvent.
     *
     * @param theme - The new theme.
     *
     * @internal
     */
    ThemeProvider.prototype._setTheme = function (theme) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(theme, 'theme');
        this._theme = Object.freeze(theme);
        this._raiseEvent();
    };
    /**
     * If set, get the current scoped theme.
     */
    ThemeProvider.prototype.tryGetTheme = function () {
        return this._theme;
    };
    ThemeProvider.prototype._raiseEvent = function () {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_SPEventManager"].instance.raiseEvent(this._themeChangedEventName, { theme: this._theme });
    };
    /**
     * The service key for ThemeProvider.
     */
    ThemeProvider.serviceKey = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["ServiceKey"].create('sp-component-base.ThemeProvider', ThemeProvider);
    ThemeProvider._themeChangedEventNameLiteral = 'ThemeProvider.themeChangedEvent';
    /**
     * Used to register a unique event for each ThemeProvider instance by appending
     * the instance count to themeChangedEventNameLiteral.
     */
    ThemeProvider._instanceCount = 0;
    return ThemeProvider;
}());



/***/ }),

/***/ "UtAH":
/*!******************************!*\
  !*** ./lib/BaseComponent.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/KillSwitches */ "+ORw");
var __decorate = (undefined && undefined.__decorate) || function (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;
};


/**
 * The base class for client-side components such as BaseClientSideWebPart or BaseExtension.
 *
 * @public
 */
var BaseComponent = /** @class */ (function () {
    /** @internal */
    function BaseComponent() {
        this._isDisposed = false;
        // empty block
    }
    Object.defineProperty(BaseComponent.prototype, "_dynamicDataSourceId", {
        /**
         * Returns the dynamic data source id for the current instance of the component.
         *
         * @internal
         */
        get: function () {
            return this.manifest.componentType + "." + this.manifest.id + "." + this.instanceId;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Disposes the component.
     *
     * @remarks
     * Third-party code generally does not need to call this method; it's invoked
     * automatically when the lifecycle ends for a web part or extension.  To perform
     * custom cleanup when your component is disposed, override the {@link BaseComponent.onDispose}
     * method.
     */
    BaseComponent.prototype.dispose = function () {
        if (!this._isDisposed) {
            this.onDispose();
            this.context.dispose();
            delete this.context;
            this._isDisposed = true;
        }
    };
    Object.defineProperty(BaseComponent.prototype, "isDisposed", {
        /**
         * Returns true if the component has been already disposed.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponent.prototype, "manifest", {
        /**
         * Provides access to the manifest for the client-side component.
         * @remarks
         * Child classes can override this with more specialized manifest types.
         */
        get: function () {
            return this.context.manifest;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * This event method is called at the end of the component's lifecycle.
     * It provides an opportunity to release any associated resources, cancel any
     * outstanding requests, etc.
     */
    BaseComponent.prototype.onDispose = function () {
        // (empty block)
    };
    Object.defineProperty(BaseComponent.prototype, "instanceId", {
        /**
         * A unique identifier for the instance of the component.
         *
         * @remarks
         * A component implementation can be loaded multiple times on the page.
         * For example, if the component is a charting web part, multiple instances of this web part
         * could be added to the SharePoint canvas.  The instanceId uniquely identifies each
         * of these instances.
         */
        get: function () { return this.context.instanceId; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponent.prototype, "componentId", {
        /**
         * Returns the component identifier as defined in the component’s associated manifest.
         *
         * @remarks
         * Each client-side component has an associated manifest that is used by the sp-loader to load its scripts,
         * and which may include additional metadata about the component.  The manifest is uniquely identified using
         * a text string containing a lower case GUID value.
         */
        get: function () { return this.context.manifest.id; },
        enumerable: true,
        configurable: true
    });
    /**
     * @internal
     */
    BaseComponent.prototype._initializeContext = function (context) {
        this.context = context;
        this.onProvideServices(context.serviceScope);
        if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__["default"].isPreallocatedPlaceholdersforApplicationCustomizersKSActive()) {
            /*
             * Calling finish on an already finished servicescope will throw.
             * Hence, checking it before finishing the servicescope.
             *
             * In the case of ApplicationCustomizers, it's context is calling 'finish'
             * on the service scope. Hence, it is required to have the below check.
             */
            if (!context.serviceScope._isFinished) {
                context.serviceScope.finish();
            }
        }
        else {
            context.serviceScope.finish();
        }
        this.context._initializeDynamicData(this, context.serviceScope);
    };
    /**
     * This event method allows a component to add custom services to its
     * {@link @microsoft/sp-core-library#ServiceScope}.
     *
     * @remarks
     * This event method is fired before {@link @microsoft/sp-core-library#ServiceScope | ServiceScope.finish()}
     * is called, allowing the component to provide custom services.
     *
     * @alpha
     */
    BaseComponent.prototype.onProvideServices = function (serviceScope) {
        // empty block
    };
    __decorate([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__["virtual"]
    ], BaseComponent.prototype, "manifest", null);
    __decorate([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__["virtual"]
    ], BaseComponent.prototype, "onDispose", null);
    __decorate([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__["virtual"]
    ], BaseComponent.prototype, "onProvideServices", null);
    return BaseComponent;
}());
/* harmony default export */ __webpack_exports__["default"] = (BaseComponent);


/***/ }),

/***/ "WWPs":
/*!*****************************************!*\
  !*** ./lib/DynamicDataSourceManager.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-dynamic-data */ "84nK");
/* harmony import */ var _microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-lodash-subset */ "Pk8u");
/* harmony import */ var _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/KillSwitches */ "+ORw");
/* harmony import */ var _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DynamicDataProvider */ "LUHn");
/* harmony import */ var _loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./loc/Strings.resx */ "qITA");








/**
 * The Dynamic Data Source Manager is responsible for:
 *  - Constructing the dynamic data source
 *  - Allowing initialization of the dynamic data source by a component
 *  - Allowing data source to update its metadata and notify when data has been updated.
 *
 * @public
 */
var DynamicDataSourceManager = /** @class */ (function () {
    function DynamicDataSourceManager() {
        this._src = undefined;
        this._isDisposed = false;
        this._isInitialized = false;
        this._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogSource"].create('DynamicDataSourceManager');
    }
    /**
     * Initializes the Dynamic Data source manager for a specific component.
     *
     * @param component - Component on which the source is being constructed.
     *
     * @internal
     */
    DynamicDataSourceManager.prototype._initialize = function (component, serviceScope) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(component, 'component');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(serviceScope, 'serviceScope');
        this._component = component;
        this._dynamicDataManager = serviceScope.consume(_microsoft_sp_dynamic_data__WEBPACK_IMPORTED_MODULE_2__["_DynamicDataUtilities"].IDynamicDataManagerServiceKey);
        this._isInitialized = true;
    };
    /**
     * Disposes the resources held by the Dynamic Data source.
     */
    DynamicDataSourceManager.prototype.dispose = function () {
        if (!this._isDisposed) {
            if (this._src) {
                this._dynamicDataManager.removeSource(this._src.id);
                delete this._src;
            }
            delete this._dynamicDataManager;
            delete this._component;
            this._isInitialized = false;
            this._isDisposed = true;
        }
    };
    Object.defineProperty(DynamicDataSourceManager.prototype, "isDisposed", {
        /**
         * Returns true if the DynamicDataSourceManager is disposed.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DynamicDataSourceManager.prototype, "_source", {
        /**
         * Returns the source of DynamicDataSourceManager.
         * @internal
         */
        get: function () {
            return this._src;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Initializes the Dynamic Data Source for the component.
     *
     * @param callableFunctions - Set of methods that are exposed through the Dynamic Data Source
     */
    DynamicDataSourceManager.prototype.initializeSource = function (callableFunctions) {
        this._assertNotDisposed();
        this._assertInitialized();
        if (!!this._src) {
            throw new Error(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].SourceAlreadyInitialized);
        }
        this._callableFunctions = callableFunctions;
        this._src = this._buildSource(this._component);
        this._dynamicDataManager.addSource(this._src);
        this._logFeatureEntry('DynamicDataSourceInitialized', { sourceId: this._src.id });
    };
    /**
     * Notifies that this source has updated its properties.
     *
     * When invoked, it enables to broadcast the notification to all the consumers who have
     * registered to this notification from this source.
     */
    DynamicDataSourceManager.prototype.notifySourceChanged = function () {
        this._assertNotDisposed();
        this._assertInitialized();
        this._assertSourceExists();
        this._dynamicDataManager.notifySourceChanged(this._src.id);
    };
    /**
     * Notifies that this source has updated a specific property.
     *
     * When invoked, it enables to broadcast the notification to all the consumers who have
     * registered to this notification from this source.
     *
     * @param propertyId - Id of the updated property in the source.
     */
    DynamicDataSourceManager.prototype.notifyPropertyChanged = function (propertyId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNonemptyString(propertyId, 'propertyId');
        this._assertNotDisposed();
        this._assertInitialized();
        this._assertSourceExists();
        this._dynamicDataManager.notifyPropertyChanged(this._src.id, propertyId);
    };
    /**
     * Updates the metadata of the Dynamic Data Source.
     * It allows to update fields like title or description.
     * Auto-generated fields like alias, componentId or instanceId cannot be updated.
     *
     * @param metadata - Partial of the metadata.
     */
    DynamicDataSourceManager.prototype.updateMetadata = function (metadata) {
        this._assertNotDisposed();
        this._assertInitialized();
        this._assertSourceExists();
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(metadata, 'metadata');
        // Ensure that auto-generated properties are not updated.
        metadata.alias = undefined;
        metadata.componentId = undefined;
        metadata.instanceId = undefined;
        Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["merge"])(this._src.metadata, metadata);
    };
    Object.defineProperty(DynamicDataSourceManager.prototype, "sourceId", {
        /**
         * Returns the Id of the current DataSource.
         * If the component did not initialize as a dynamic data source, then it returns an empty string.
         */
        get: function () {
            return this._src ? this._src.id : '';
        },
        enumerable: true,
        configurable: true
    });
    DynamicDataSourceManager.prototype._buildSource = function (component) {
        // If the source is returning non-empty allowed events then, it has to define
        // 'sendEvent' event handler as well.
        if (this._callableFunctions.allowedEvents &&
            this._callableFunctions.allowedEvents.length > 0) {
            if (!this._callableFunctions.sendEvent) {
                throw new Error(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].NoSendEventWhenAllowedEventsIsNonEmpty);
            }
        }
        return {
            id: this._component._dynamicDataSourceId,
            metadata: this._buildMetadata(component),
            // Return a clone to ensure that the consumer doesn't modify values in the source
            getPropertyDefinitions: this._getPropertyDefinitions.bind(this),
            getPropertyValue: this._getPropertyValue.bind(this),
            getAnnotatedPropertyValue: this._getAnnotatedPropertyValue.bind(this),
            // async callbacks
            getPropertyDefinitionsAsync: this._getPropertyDefinitionsAsync.bind(this),
            getPropertyValueAsync: this._getPropertyValueAsync.bind(this),
            getAnnotatedPropertyValueAsync: this._getAnnotatedPropertyValueAsync.bind(this),
            allowedEventsAsync: this._allowedEventsAsync.bind(this),
            sendEvent: this._sendEvent.bind(this)
        };
    };
    /**
     * This is the allowedEvents() that the DynamicDataSource actually exposes.
     * It does a copy of the data to ensure the consumer doesn't modify the source.
     */
    DynamicDataSourceManager.prototype._allowedEvents = function () {
        return this._callableFunctions.allowedEvents ?
            Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["cloneDeep"])(this._callableFunctions.allowedEvents()) : undefined;
    };
    /**
     * This is the sendEvent() that the consumer invokes to send an event to the source, with data.
     * @param eventName - Name of the event
     * @param data - Associated data
     */
    DynamicDataSourceManager.prototype._sendEvent = function (eventName, data) {
        this._assertValidEvent(eventName);
        this._callableFunctions.sendEvent(eventName, data);
    };
    /**
     * This is the getPropertyDefinitions() that the DynamicDataSource actually exposes.
     * It does a copy of the data to ensure the consumer doesn't modify the source.
     * This assumes that the component has dynamic data and has a controller.
     */
    DynamicDataSourceManager.prototype._getPropertyDefinitions = function () {
        return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["cloneDeep"])(this._callableFunctions.getPropertyDefinitions());
    };
    /**
     * This is the getPropertyValue() that the DynamicDataSource actually exposes.
     * It does a copy of the data to ensure the consumer doesn't modify the source.
     * This assumes that the component has the source initialized.
     * If there is no value returned, it checks whether the propertyId is incorrect or the value is actually undefined.
     *
     * @remarks
     * If the property value associated with the property id, is an array then the
     * propertyId will have [*] notation appended at the end to support valid JSON Path notation.
     * Hence when reading the property id, we account for that and extract the name accordingly.
     */
    DynamicDataSourceManager.prototype._getPropertyValue = function (propertyId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(propertyId, 'propertyId');
        if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_4__["default"].isDynamicDataGetPropertyValueKillSwitchActivated()) {
            var paths = propertyId.split(_DynamicDataProvider__WEBPACK_IMPORTED_MODULE_5__["default"]._jsonPathArrayRegex);
            try {
                // tslint:disable-next-line:no-any
                var propertyValue = this._callableFunctions.getPropertyValue(paths.shift());
                if (paths.length > 0) {
                    if (!isNaN(parseInt(paths[0], 10)) && Array.isArray(propertyValue)) {
                        propertyValue = propertyValue[paths[0]];
                    }
                }
                if (propertyValue === undefined) {
                    if (
                    // This code can be slow if there is a many property definitions (O(n) for number of properties).
                    // It's done this way to prioritize memory consumption instead of CPU cycles as this is an optional feature,
                    // so if it's not used there is no memory foorprint
                    this._callableFunctions
                        .getPropertyDefinitions()
                        .filter(function (def) { return def.id === propertyId; })
                        .length === 0 &&
                        this._src // Check that the source exists to get its title
                    ) {
                        throw new Error("Property \"" + propertyId + "\" doesn't exist in source \"" + this._src.metadata.title + "\"");
                    }
                }
                return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["cloneDeep"])(propertyValue);
            }
            catch (error) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logErrorData({
                    source: this._logSource,
                    error: error
                });
                return undefined;
            }
        }
        else { // KillSwitch Activated, falling back to old logic.
            // tslint:disable-next-line:no-any
            var propertyValue = this._callableFunctions.getPropertyValue(propertyId);
            if (propertyValue === undefined) {
                if (
                // This code can be slow if there is a many property definitions (O(n) for number of properties).
                // It's done this way to prioritize memory consumption instead of CPU cycles as this is an optional feature,
                // so if it's not used there is no memory foorprint
                this._callableFunctions
                    .getPropertyDefinitions()
                    .filter(function (def) { return def.id === propertyId; })
                    .length === 0 &&
                    this._src // Check that the source exists to get its title
                ) {
                    throw new Error("Property \"" + propertyId + "\" doesn't exist in source \"" + this._src.metadata.title + "\"");
                }
            }
            return Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["cloneDeep"])(this._callableFunctions.getPropertyValue(propertyId));
        }
    };
    /**
     * Returns the real time value of the property.
     * @param propertyId - property id for which the value is requested.
     */
    DynamicDataSourceManager.prototype._getPropertyDefinitionsAsync = function () {
        return Promise.resolve(this._getPropertyDefinitions());
    };
    /**
     * Returns the real time value of the property.
     * @param propertyId - property id for which the value is requested.
     */
    DynamicDataSourceManager.prototype._getPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this._getPropertyValue(propertyId));
    };
    /**
     * This is the allowedEvents() that the DynamicDataSource actually exposes.
     * It does a copy of the data to ensure the consumer doesn't modify the source.
     */
    DynamicDataSourceManager.prototype._allowedEventsAsync = function () {
        return Promise.resolve(this._allowedEvents());
    };
    /**
     * This is the getPropertyValueSchema() that the DynamicDataSource actually exposes.
     * It does a copy of the data to ensure the consumer doesn't modify the source.
     * If the source doesn't provide the annotated value, then it falls back to whatever
     * 'getPropertyValue' returns as the sample value and metadata would be undefined.
     *
     * @remarks
     * If the property value associated with the property id, is an array then the
     * propertyId will have [*] notation appended at the end to support valid JSON Path notation.
     * Hence when reading the property id, we account for that and extract the name accordingly.
     *
     * @param propertyId - property id for which the schema is requested.
     */
    DynamicDataSourceManager.prototype._getAnnotatedPropertyValue = function (propertyId) {
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Validate"].isNotNullOrUndefined(propertyId, 'propertyId');
        var annotatedPropertyValue;
        var getAnnotatedPropertyValue = this._callableFunctions.getAnnotatedPropertyValue;
        if (getAnnotatedPropertyValue) {
            var paths = propertyId.split(_DynamicDataProvider__WEBPACK_IMPORTED_MODULE_5__["default"]._jsonPathArrayRegex);
            try {
                // tslint:disable-next-line:no-any
                annotatedPropertyValue = this._callableFunctions.getAnnotatedPropertyValue(paths.shift());
                if (paths.length > 0) {
                    if (!isNaN(parseInt(paths[0], 10)) && Array.isArray(annotatedPropertyValue)) {
                        annotatedPropertyValue = annotatedPropertyValue[paths[0]];
                    }
                }
            }
            catch (error) {
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_TraceLogger"].logErrorData({
                    source: this._logSource,
                    error: error
                });
                annotatedPropertyValue = undefined;
            }
        }
        if (!annotatedPropertyValue) {
            annotatedPropertyValue = {
                sampleValue: this._getPropertyValue(propertyId),
                metadata: undefined
            };
        }
        return annotatedPropertyValue;
    };
    /**
     * Returns the annotated value of the property.
     * @param propertyId - property id for which the value is requested.
     */
    DynamicDataSourceManager.prototype._getAnnotatedPropertyValueAsync = function (propertyId) {
        return Promise.resolve(this._getAnnotatedPropertyValue(propertyId));
    };
    DynamicDataSourceManager.prototype._buildMetadata = function (component) {
        var metadata = {
            title: component.manifest.alias,
            alias: component.manifest.alias,
            componentId: component.componentId,
            instanceId: component.instanceId
        };
        // Web parts have properties "title" and "description" that should go to the source by default.
        var componentWithMetadata = component; // tslint:disable-line:no-any
        if (componentWithMetadata.title) {
            metadata.title = componentWithMetadata.title;
        }
        if (componentWithMetadata.description) {
            metadata.description = componentWithMetadata.description;
        }
        return metadata;
    };
    /**
     * Asserts if the event is a valid event on the source.
     *
     * Its an invalid event in two cases:
     *  1. When '_allowedEvent()' api returns undefined
     *  2. When the event name is not one of the allowed events on the source.
     *
     * @param eventName - Name of the event.
     */
    DynamicDataSourceManager.prototype._assertValidEvent = function (eventName) {
        if (!this._allowedEvents() ||
            (Object(_microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["findIndex"])(this._allowedEvents(), { name: eventName }) === -1)) {
            throw new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].InvalidEvent, eventName, this._src.metadata.title));
        }
    };
    DynamicDataSourceManager.prototype._assertNotDisposed = function () {
        if (this.isDisposed) {
            throw new Error(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].DynamicDataSourceManagerIsDisposed);
        }
    };
    DynamicDataSourceManager.prototype._assertInitialized = function () {
        if (!this._isInitialized) {
            throw new Error(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].DynamicDataSourceManagerIsNotInitialized);
        }
    };
    DynamicDataSourceManager.prototype._assertSourceExists = function () {
        if (!this._src) {
            throw new Error(_loc_Strings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].DynamicDataSourceIsNotInitialized);
        }
    };
    /**
     * Logs a feature event.
     * @param logFeature - Name of the feature to log.
     * @param contextualProps - Contextual log properties of the feature event.
     */
    DynamicDataSourceManager.prototype._logFeatureEntry = function (logFeature, contextualProps) {
        var isInternal = this._component.manifest.isInternal || false;
        var logProperties = {
            'alias': this._component.manifest.alias,
            'isInternal': isInternal.toString()
        };
        var logEntry = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogEntry"]('DynamicDataSourceManager', logFeature, _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_LogType"].Event, _microsoft_sp_lodash_subset__WEBPACK_IMPORTED_MODULE_3__["merge"](logProperties, contextualProps));
        _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_0__["_EngagementLogger"].logEventWithLogEntry(logEntry);
    };
    return DynamicDataSourceManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (DynamicDataSourceManager);


/***/ }),

/***/ "X+PM":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_X_PM__;

/***/ }),

/***/ "j2/K":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/css-loader/2.0.2_webpack@4.35.3/node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function (useSourceMap) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item, useSourceMap);

      if (item[2]) {
        return '@media ' + item[2] + '{' + content + '}';
      } else {
        return content;
      }
    }).join('');
  }; // import a list of modules into the list


  list.i = function (modules, mediaQuery) {
    if (typeof modules === 'string') {
      modules = [[null, modules, '']];
    }

    var alreadyImportedModules = {};

    for (var i = 0; i < this.length; i++) {
      var id = this[i][0];

      if (id != null) {
        alreadyImportedModules[id] = true;
      }
    }

    for (i = 0; i < modules.length; i++) {
      var item = modules[i]; // skip already imported module
      // this implementation is not 100% perfect for weird media query combinations
      // when a module is imported multiple times with different media queries.
      // I hope this will never occur (Hey this way we have smaller bundles)

      if (item[0] == null || !alreadyImportedModules[item[0]]) {
        if (mediaQuery && !item[2]) {
          item[2] = mediaQuery;
        } else if (mediaQuery) {
          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';
        }

        list.push(item);
      }
    }
  };

  return list;
};

function cssWithMappingToString(item, useSourceMap) {
  var content = item[1] || '';
  var cssMapping = item[3];

  if (!cssMapping) {
    return content;
  }

  if (useSourceMap && typeof btoa === 'function') {
    var sourceMapping = toComment(cssMapping);
    var sourceURLs = cssMapping.sources.map(function (source) {
      return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
    });
    return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  }

  return [content].join('\n');
} // Adapted from convert-source-map (MIT)


function toComment(sourceMap) {
  // eslint-disable-next-line no-undef
  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  return '/*# ' + data + ' */';
}

/***/ }),

/***/ "jOlS":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_jOlS__;

/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: BaseComponent, BaseComponentContext, DynamicDataProvider, DynamicDataSourceManager, DynamicProperty, _LegacyThirdPartyFabricCoreLoader, ThemeChangedEventArgs, ThemeProvider, _ComponentBaseKillSwitches, _ShimmerFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseComponent */ "UtAH");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _BaseComponent__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _BaseComponentContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseComponentContext */ "sIIZ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentContext", function() { return _BaseComponentContext__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DynamicDataProvider */ "LUHn");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DynamicDataProvider", function() { return _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _DynamicDataSourceManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DynamicDataSourceManager */ "WWPs");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DynamicDataSourceManager", function() { return _DynamicDataSourceManager__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _DynamicProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DynamicProperty */ "+NTl");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DynamicProperty", function() { return _DynamicProperty__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _LegacyThirdPartyFabricCoreLoader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./LegacyThirdPartyFabricCoreLoader */ "y96G");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_LegacyThirdPartyFabricCoreLoader", function() { return _LegacyThirdPartyFabricCoreLoader__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _themeProvider_ThemeProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./themeProvider/ThemeProvider */ "UdP8");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeChangedEventArgs", function() { return _themeProvider_ThemeProvider__WEBPACK_IMPORTED_MODULE_6__["ThemeChangedEventArgs"]; });

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

/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./common/KillSwitches */ "+ORw");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ComponentBaseKillSwitches", function() { return _common_KillSwitches__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _ShimmerFactory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ShimmerFactory */ "E99v");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ShimmerFactory", function() { return _ShimmerFactory__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/**
 * SharePoint Framework support for building client-side components
 *
 * @remarks
 * This package supports development of client-side components (e.g. web parts,
 * client-side extensions, and applications) built using the SharePoint Framework.
 * It defines the base classes and interfaces for functionality that is
 * common across all client-side component types.
 *
 * @packagedocumentation
 */








// ShimmerFactory



/***/ }),

/***/ "qITA":
/*!*********************************!*\
  !*** ./lib/loc/Strings.resx.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_/GZrHjuQO4erDQbBRI2XSA';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ }),

/***/ "sIIZ":
/*!*************************************!*\
  !*** ./lib/BaseComponentContext.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-page-context */ "X+PM");
/* harmony import */ var _microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-http */ "vlQI");
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DynamicDataProvider */ "LUHn");
/* harmony import */ var _DynamicDataSourceManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DynamicDataSourceManager */ "WWPs");






/**
 * The base class for context objects for client-side components.
 *
 * @remarks
 * A "context" object is a collection of well-known services and other
 * objects that are likely to be needed by business logic that interacts with a
 * associated component.  Each component type has its own specialized subclass
 * of BaseComponentContext, e.g. WebPartContext for web parts, ExtensionContext for
 * client-side extensions, and so on.
 *
 * @privateRemarks
 *
 * NOTE: The context object is a convenience that avoids the overhead of
 * properly factoring the dependencies for every class in a project.
 * If lots of members are added to the context without discipline, it can
 * easily devolve into a poor engineering practice (where "everything depends
 * on everything else").  Think carefully before adding more objects to the context object.
 * Is it really a core scenario?  Is it unnecessarily coupling your package to another
 * package?  Is there a better place to put the object?
 *
 * Only add data properties or well-defined classes with ubiquitous applicability.
 * Never add loose functions, callbacks, or settable properties to the context.
 *
 * @public
 */
var BaseComponentContext = /** @class */ (function () {
    /** @internal */
    function BaseComponentContext(parameters) {
        var _this = this;
        this._isDisposed = false;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(parameters, 'parameters');
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(parameters.manifest, 'manifest');
        this.manifest = parameters.manifest;
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(parameters.parentServiceScope, 'parentServiceScope');
        this._serviceScope = parameters.parentServiceScope.startNewChild();
        // TODO: VSO:507790 Reconcile this with ClientSideWebPartManager._createWebPartTag()
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNotNullOrUndefined(parameters.loggingTag, 'loggingTag');
        this.serviceScope.provide(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_logSourceServiceKey"], _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_1__["_LogSource"].create(parameters.loggingTag));
        _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Validate"].isNonemptyString(parameters.instanceId, 'instanceId');
        this._instanceId = parameters.instanceId;
        this._httpClient = this.serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"].serviceKey);
        this._spHttpClient = this.serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["SPHttpClient"].serviceKey);
        this._msGraphClientFactory = this.serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["MSGraphClientFactory"].serviceKey);
        this._aadClientFactory = this.serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["AadHttpClientFactory"].serviceKey);
        this._aadTokenFactory = this.serviceScope.createDefaultAndProvide(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_3__["AadTokenProviderFactory"].serviceKey);
        this.serviceScope.provide(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_ClientManifestData"].serviceKey, new _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["_ClientManifestData"](this.serviceScope, this.manifest));
        // Consume services
        this.serviceScope.whenFinished(function () {
            _this._pageContext = _this.serviceScope.consume(_microsoft_sp_page_context__WEBPACK_IMPORTED_MODULE_2__["PageContext"].serviceKey);
        });
        this._dynamicDataProvider = new _DynamicDataProvider__WEBPACK_IMPORTED_MODULE_4__["default"]();
        this._dynamicDataSourceManager = new _DynamicDataSourceManager__WEBPACK_IMPORTED_MODULE_5__["default"]();
    }
    Object.defineProperty(BaseComponentContext.prototype, "isDisposed", {
        /**
         * Returns true if the context is disposed.
         */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Disposes the base component context.
     */
    BaseComponentContext.prototype.dispose = function () {
        if (!this._isDisposed) {
            if (this._dynamicDataProvider) {
                this._dynamicDataProvider.dispose();
            }
            if (this._dynamicDataSourceManager) {
                this._dynamicDataSourceManager.dispose();
            }
            delete this._serviceScope;
            delete this._pageContext;
            delete this._dynamicDataProvider;
            delete this._dynamicDataSourceManager;
            this._isDisposed = true;
        }
    };
    Object.defineProperty(BaseComponentContext.prototype, "serviceScope", {
        /**
         * The associated {@link @microsoft/sp-core-library#ServiceScope} for this component.
         * @remarks
         * A child service scope is created for each client-side component.
         */
        get: function () { return this._serviceScope; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "instanceId", {
        /**
         * {@inheritDoc BaseComponent.instanceId}
         */
        get: function () { return this._instanceId; },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "pageContext", {
        /**
         * The page context provides standard definitions for common SharePoint objects
         * that need to be shared between the client-side application, web parts, and other
         * components.
         */
        get: function () { return this._pageContext; },
        enumerable: true,
        configurable: true
    });
    /**
     * Creates a Dynamic Data Provider for the component.
     *
     * @param component - Component tied to the Dynamic Data Provider
     * @param serviceScope - ServiceScope to consume the Dynamic Data Manager from. Must be finished.
     * @internal
     */
    BaseComponentContext.prototype._initializeDynamicData = function (component, serviceScope) {
        this._dynamicDataProvider._initialize(component, serviceScope);
        this._dynamicDataSourceManager._initialize(component, serviceScope);
    };
    Object.defineProperty(BaseComponentContext.prototype, "dynamicDataProvider", {
        /**
         * Returns the Dynamic Data Provider associated with the component.
         */
        get: function () {
            return this._dynamicDataProvider;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "dynamicDataSourceManager", {
        /**
         * Returns the Dynamic Data Source Manager associated with the component.
         */
        get: function () {
            return this._dynamicDataSourceManager;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "aadHttpClientFactory", {
        /**
         * The instance of AadHttpClientFactory created for this instance of component
         */
        get: function () {
            return this._aadClientFactory;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "aadTokenProviderFactory", {
        /**
         * The instance of AadTokenProviderFactory created for this instance of component
         */
        get: function () {
            return this._aadTokenFactory;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "msGraphClientFactory", {
        /**
         * The instance of MSGraphClientFactory created for this instance of component
         */
        get: function () {
            return this._msGraphClientFactory;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "httpClient", {
        /**
         * The instance of HttpClient created for this instance of component
         */
        get: function () {
            return this._httpClient;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponentContext.prototype, "spHttpClient", {
        /**
         * The instance of SpHttpClient created for this instance of component
         */
        get: function () {
            return this._spHttpClient;
        },
        enumerable: true,
        configurable: true
    });
    return BaseComponentContext;
}());
/* harmony default export */ __webpack_exports__["default"] = (BaseComponentContext);


/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vlQI":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vlQI__;

/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "wxtz":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_wxtz__;

/***/ }),

/***/ "y96G":
/*!*************************************************!*\
  !*** ./lib/LegacyThirdPartyFabricCoreLoader.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/KillSwitches */ "+ORw");


// Copyright (c) Microsoft. All rights reserved.
/**
 * Class to load async chunks.
 *
 * @internal
 */
var LegacyThirdPartyFabricCoreLoader = /** @class */ (function () {
    function LegacyThirdPartyFabricCoreLoader() {
    }
    /**
     * Method to dynamically load the legacy third-party fabric core styles.
     * This method should be called only when a third-party component(web part or extension)
     * is being loaded on to the page.
     *
     * NOTE: Remove this method when the below killswitch is graduated from \@microsoft/sp-webpart-base.
     * 'isStopLoadingLegacyFabricCSSKillSwitchActivated' - '57b771ed-2b57-41c2-aaaa-0e21c587c6dc'
     *
     * @param isComponentInternal - indicates whether the requesting component is internal to Microsoft or not.
     */
    LegacyThirdPartyFabricCoreLoader.load = function (isComponentInternal) {
        if (!isComponentInternal && !LegacyThirdPartyFabricCoreLoader.isLoaded) {
            return __webpack_require__.e(/*! import() | legacy-third-party-fabric-core-localfont */ "legacy-third-party-fabric-core-localfont").then(__webpack_require__.bind(null, /*! ./chunks/legacy-third-party-fabric-core/FabricLocalFont */ "TL+I")).then(function () {
                LegacyThirdPartyFabricCoreLoader.isLoaded = true;
                return;
            });
        }
        else {
            return Promise.resolve();
        }
    };
    /**
     * Method to dynamically force load the legacy third-party fabric core styles.
     * All the below conditions are checked and needs to be true to force load the legacy css:
     *   1. Should be third party component (web part or extension)
     *   2. Should not be already loaded
     *   3. Component should ask to load the legacy css or if the component is built version \< 1.8
     *
     * @param manifest - component's manifest
     */
    LegacyThirdPartyFabricCoreLoader.forceLoad = function (manifest) {
        try {
            if (LegacyThirdPartyFabricCoreLoader._shouldLoad(manifest)) {
                return __webpack_require__.e(/*! import() | legacy-third-party-fabric-core-localfont */ "legacy-third-party-fabric-core-localfont").then(__webpack_require__.bind(null, /*! ./chunks/legacy-third-party-fabric-core/FabricLocalFont */ "TL+I")).then(function () {
                    LegacyThirdPartyFabricCoreLoader.isLoaded = true;
                    return;
                });
            }
            else {
                return Promise.resolve();
            }
        }
        catch (error) {
            return Promise.reject(error);
        }
    };
    /**
     * Method to check if the web part need to load the legacy css.
     * @param manifest - component's manifest
     */
    LegacyThirdPartyFabricCoreLoader.needLegacyFabricCss = function (manifest) {
        if (manifest.isInternal) {
            return false;
        }
        /*
         * If loadLegacyFabricCss is not specified by the component, then load the css
         * if the component is built before SPFx 1.8.2 or in some cases when we cannot get
         * the version of the SPFx.
         */
        if (manifest.loadLegacyFabricCss === undefined) {
            var version = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Version"]._tryParseSPFxVersion(manifest);
            if (!_common_KillSwitches__WEBPACK_IMPORTED_MODULE_1__["default"].isAddSpecificityToLegacyWebPartKSActivated()) {
                return !version || version.lessThan(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Version"].parse('1.8.2'));
            }
            else {
                return !version || version.lessThan(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_0__["Version"].parse('1.8'));
            }
        }
        // Respect 'loadLegacyFabricCss' if a real value is provided.
        return manifest.loadLegacyFabricCss;
    };
    LegacyThirdPartyFabricCoreLoader._shouldLoad = function (manifest) {
        return !LegacyThirdPartyFabricCoreLoader.isLoaded || LegacyThirdPartyFabricCoreLoader.needLegacyFabricCss(manifest);
    };
    /**
     * Indicates whether the fabric-core styles are loaded on the page or not.
     */
    LegacyThirdPartyFabricCoreLoader.isLoaded = false;
    return LegacyThirdPartyFabricCoreLoader;
}());
/* harmony default export */ __webpack_exports__["default"] = (LegacyThirdPartyFabricCoreLoader);


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/decorators":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_decorators__;

/***/ }),

/***/ "@microsoft/load-themed-styles":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_load_themed_styles__;

/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-dynamic-data":
/*!*********************************************!*\
  !*** external "@microsoft/sp-dynamic-data" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_dynamic_data__;

/***/ }),

/***/ "@microsoft/sp-http":
/*!*************************************!*\
  !*** external "@microsoft/sp-http" ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_http__;

/***/ }),

/***/ "@microsoft/sp-lodash-subset":
/*!**********************************************!*\
  !*** external "@microsoft/sp-lodash-subset" ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_lodash_subset__;

/***/ }),

/***/ "@microsoft/sp-page-context":
/*!*********************************************!*\
  !*** external "@microsoft/sp-page-context" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_page_context__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-component-base_en-us.js.map
(function(){
if (!window.__setWebpackPublicPathLoaderSrcRegistry__) window.__setWebpackPublicPathLoaderSrcRegistry__={};
var scripts = document.getElementsByTagName('script');
if (scripts && scripts.length) {
  for (var i = 0; i < scripts.length; i++) {
    if (!scripts[i]) continue;
    var path = scripts[i].getAttribute('src');
    if (path) window.__setWebpackPublicPathLoaderSrcRegistry__[path]=true;
  }
}
})();


define("0773bd53-a69e-4293-87e6-ba80ea4d614b_1.10.0", ["@microsoft/decorators","@microsoft/sp-component-base","@microsoft/sp-core-library","@microsoft/sp-diagnostics","@microsoft/sp-loader","@ms/sp-telemetry"], function(__WEBPACK_EXTERNAL_MODULE__microsoft_decorators__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_component_base__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__, __WEBPACK_EXTERNAL_MODULE__microsoft_sp_loader__, __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__) { return /******/ (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 = "./sp-extension-base.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../lib/resx-strings/en-us.js":
/*!************************************!*\
  !*** ../lib/resx-strings/en-us.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
  var strings = {
    "_i/mWZag7vFX4034jbvvZkw": {
      "manifestNotFound": "***Manifest not found for componentId \"{0}\".",
      "extensionInitFailure": "***Extension failed to initialize for componentId \"{0}\".",
      "extensionLoadFailure": "***Extension failed to load for componentId \"{0}\".",
      "expectingBaseExtension": "***Expecting a class that extends BaseExtension.",
      "wrongExtensionType": "***Expecting a class that extends {0}."
    }
  };

  strings.default = strings;
  return strings;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }),

/***/ "./sp-extension-base.js":
/*!******************************!*\
  !*** ./sp-extension-base.js ***!
  \******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! @ms/sp-telemetry */ "@ms/sp-telemetry"),__webpack_require__(/*! @microsoft/sp-component-base */ "@microsoft/sp-component-base"),__webpack_require__(/*! @microsoft/sp-loader */ "@microsoft/sp-loader"),__webpack_require__(/*! @microsoft/sp-core-library */ "@microsoft/sp-core-library"),__webpack_require__(/*! @microsoft/sp-diagnostics */ "@microsoft/sp-diagnostics"),__webpack_require__(/*! resx-strings */ "../lib/resx-strings/en-us.js"),__webpack_require__(/*! @microsoft/decorators */ "@microsoft/decorators")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(__WEBPACK_EXTERNAL_MODULE__2q6Q__, __WEBPACK_EXTERNAL_MODULE__7Awa__, __WEBPACK_EXTERNAL_MODULE_I6O9__, __WEBPACK_EXTERNAL_MODULE_UWqr__, __WEBPACK_EXTERNAL_MODULE_ut3N__, __WEBPACK_EXTERNAL_MODULE_vpy3__, __WEBPACK_EXTERNAL_MODULE_wxtz__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "2q6Q":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__2q6Q__;

/***/ }),

/***/ "7Awa":
/*!***********************************************!*\
  !*** external "@microsoft/sp-component-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__7Awa__;

/***/ }),

/***/ "I6O9":
/*!***************************************!*\
  !*** external "@microsoft/sp-loader" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_I6O9__;

/***/ }),

/***/ "M+WR":
/*!*********************************!*\
  !*** ./lib/ExtensionContext.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__);
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();

/**
 * The base class for context objects for client-side extensions.
 *
 * @public
 */
var ExtensionContext = /** @class */ (function (_super) {
    __extends(ExtensionContext, _super);
    /** @internal */
    function ExtensionContext(parameters) {
        return _super.call(this, parameters) || this;
    }
    return ExtensionContext;
}(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__["BaseComponentContext"]));
/* harmony default export */ __webpack_exports__["default"] = (ExtensionContext);


/***/ }),

/***/ "OZJt":
/*!*********************************!*\
  !*** ./lib/ExtensionManager.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @microsoft/sp-core-library */ "UWqr");
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-loader */ "I6O9");
/* harmony import */ var _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _BaseExtension__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BaseExtension */ "S021");
/* harmony import */ var _ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ExtensionStrings.resx */ "xYWa");







/**
 * `ExtensionManager` manages a collection of extensions and provides APIs to create, dispose
 * and access its managed extensions.
 *
 * @remarks
 * Any application that needs to use extensions, should use `ExtensionManager` to create those extensions
 * by passing in their `componentId` and properties. `ExtensionManager` takes care of loading modules and
 * creating the instances for the extensions and provides APIs to manage the created extensions.
 *
 * @internal
 */
var ExtensionManager = /** @class */ (function () {
    /**
     * Creates a new instance of `ExtensionManager`.
     *
     * @remarks
     * If you construct an instance of this class, you must dispose it by calling `ExtensionManager.dispose()`;
     * otherwise resource leaks may occur.
     *
     * @param serviceScope - The serviceScope provided by the caller application
     * @param expectedType - for validation purposes, a base class that the resulting object
     *   is expected to extend
     */
    function ExtensionManager(serviceScope, expectedType) {
        this._serviceScope = serviceScope;
        this._expectedType = expectedType;
        this._extensions = [];
    }
    /**
     * Creates an extension instance by loading its module based on the provided componentId and then creates an instance
     * of the extension by passing in the provided properties JSON and context creator.
     *
     * @remarks
     * The provided componentId is a Guid that identifies the module containing the extension (as its default export).
     * The module loader of SharePoint Framework will load the module if its manifest is found on the page
     * (for example, if the extension is installed) and create an instace of the extension and initialize it using
     * the provided contextCreator and propertiesJson. Since this process is asynchronous, the manager returns a promise
     * that resolves once the extension instance is ready.
     *
     * The extension will be disposed by `ExtensionManager.dispose()`.
     *
     * @param componentId - the client-side component ID for the extension.
     * @param propertiesJson - a text string containing an optional JSON object.
     * @param contextCreator - a callback function that constructs an appropriate ExtensionContext
     */
    ExtensionManager.prototype.createExtension = function (componentId, propertiesJson, contextCreator) {
        var _this = this;
        var qosMonitor = new _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_QosMonitor"]('Extension.Create', true);
        var manifest = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__["SPComponentLoader"].tryGetManifestById(componentId);
        if (!manifest) {
            var manifestError = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].manifestNotFound, componentId));
            qosMonitor.writeUnexpectedFailure('ManifestNotFound', manifestError, { componentId: componentId });
            return Promise.reject(manifestError);
        }
        var extraData = this._createQosExtraData(manifest);
        try {
            var instanceId = _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Guid"].newGuid().toString();
            var loggingTag = "Extension." + manifest.id + "." + instanceId;
            var context_1 = contextCreator({
                manifest: manifest,
                parentServiceScope: this._serviceScope,
                instanceId: instanceId,
                loggingTag: loggingTag
            });
            var perfLogKeyCreate_1 = loggingTag + '.Extension.Create';
            var perfLogKeyScriptLoad_1 = loggingTag + '.Extension.ScriptLoad';
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].startMarkForComponent(perfLogKeyCreate_1);
            var error_1 = undefined;
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].startMarkForComponent(perfLogKeyScriptLoad_1);
            var createPromise = _microsoft_sp_loader__WEBPACK_IMPORTED_MODULE_3__["SPComponentLoader"].loadComponent(manifest).then(function (component) {
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].endMarkForComponent(perfLogKeyScriptLoad_1);
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].logPerformanceMetricToConsole(perfLogKeyScriptLoad_1, 'Extension.ScriptLoad', manifest.id, manifest.alias);
                var extensionClass = component.default;
                var extension = new extensionClass();
                if (!(extension instanceof _BaseExtension__WEBPACK_IMPORTED_MODULE_5__["default"])) {
                    error_1 = new Error(_ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].expectingBaseExtension);
                    qosMonitor.writeExpectedFailure('DoesNotExtendBaseExtension', error_1, extraData);
                    throw error_1;
                }
                if (!(extension instanceof _this._expectedType)) {
                    error_1 = Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].wrongExtensionType, _this._expectedType));
                    qosMonitor.writeExpectedFailure('WrongExtensionType', error_1, extraData);
                    throw error_1;
                }
                return extension._init(context_1, propertiesJson).then(function () {
                    return extension;
                }).catch(function (e) {
                    error_1 = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].extensionInitFailure, componentId));
                    qosMonitor.writeExpectedFailure('ExtensionInitFailure', error_1, extraData);
                    throw error_1;
                });
            }, function (e) {
                if (!error_1) {
                    error_1 = new Error(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_1__["Text"].format(_ExtensionStrings_resx__WEBPACK_IMPORTED_MODULE_6__["default"].extensionLoadFailure, componentId));
                    qosMonitor.writeExpectedFailure('ExtensionLoadFailure', error_1, extraData);
                }
                throw error_1;
            }).then(function (extension) {
                qosMonitor.writeSuccess(extraData);
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].endMarkForComponent(perfLogKeyCreate_1);
                _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_4__["_PerformanceLogger"].logPerformanceMetricToConsole(perfLogKeyScriptLoad_1, 'Extension.Create', manifest.id, manifest.alias);
                _this._extensions.push(extension);
                return extension;
            });
            // Async Loading of legacy fabric core styles (for third-party backward compatibility).
            // We do not want to wait until the load finishes as it might effect actual page render time.
            // Wait on this call to complete only if there is considerable flicker on the page.
            var fabricLoadingPromise = (_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__["_ComponentBaseKillSwitches"].isStopLoadingLegacyFabricCSSKillSwitchActivated()
                ? _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__["_LegacyThirdPartyFabricCoreLoader"].load(manifest.isInternal)
                : _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_0__["_LegacyThirdPartyFabricCoreLoader"].forceLoad(manifest));
            fabricLoadingPromise.catch(function (e) { return _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logError(ExtensionManager._logSource, new Error("Failed to load legacy fabric core styles: " + e)); });
            return createPromise;
        }
        catch (e) {
            qosMonitor.writeUnexpectedFailure('UnhandledCreateError', e, extraData);
            // If the synchronous code throws an exception, reject the promise
            return Promise.reject(e);
        }
    };
    /**
     * Disposes any extensions that were created via `createExtension()`.
     * This is performed by calling `BaseExtension.dispose()` for each extension.
     */
    ExtensionManager.prototype.dispose = function () {
        if (!this._isDisposed) {
            this.disposeExtensions();
            delete this._serviceScope;
            delete this._extensions;
            delete this._expectedType;
        }
        this._isDisposed = true;
    };
    Object.defineProperty(ExtensionManager.prototype, "isDisposed", {
        /** {@inheritDoc @microsoft/sp-core-library#IDisposable.isDisposed} */
        get: function () {
            return this._isDisposed;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Disposes all extensions created using this extensions manager.
     */
    ExtensionManager.prototype.disposeExtensions = function () {
        for (var _i = 0, _a = this._extensions; _i < _a.length; _i++) {
            var extension = _a[_i];
            try {
                extension.dispose();
            }
            catch (e) {
                var manifest = extension.manifest;
                _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logError(ExtensionManager._logSource, new Error("Failed to dispose extension \"" + manifest.alias + "\"\n            + \" with id=" + manifest.id + ": " + e.message));
            }
        }
        this._extensions = [];
    };
    /**
     * Creates a new extra data object the `Extension.Create` QoS monitor.
     */
    ExtensionManager.prototype._createQosExtraData = function (manifest) {
        var qosExtraData = {
            alias: manifest.alias,
            isInternal: manifest.isInternal,
            manifestId: manifest.id,
            extensionType: manifest.extensionType
        };
        return qosExtraData;
    };
    ExtensionManager._logSource = _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_LogSource"].create('ExtensionManager');
    return ExtensionManager;
}());
/* harmony default export */ __webpack_exports__["default"] = (ExtensionManager);


/***/ }),

/***/ "S021":
/*!******************************!*\
  !*** ./lib/BaseExtension.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/decorators */ "wxtz");
/* harmony import */ var _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/sp-telemetry */ "2q6Q");
/* harmony import */ var _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-diagnostics */ "ut3N");
/* harmony import */ var _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-component-base */ "7Awa");
/* harmony import */ var _microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__);
var __extends = (undefined && undefined.__extends) || (function () {
    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);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __decorate = (undefined && undefined.__decorate) || function (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;
};




/**
 * The base class for all client-side extensions.
 *
 * @public
 */
var BaseExtension = /** @class */ (function (_super) {
    __extends(BaseExtension, _super);
    /** @internal */
    function BaseExtension() {
        var _this = _super.call(this) || this;
        _this._properties = {};
        return _this;
    }
    /**
     * @internal
     */
    BaseExtension.prototype._init = function (context, propertiesJson) {
        var _this = this;
        this._initializeContext(context);
        this._deserializeProperties(propertiesJson);
        var logSource = this.context.serviceScope.consume(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_logSourceServiceKey"]);
        var perflogKey = logSource + '.Extension.Init';
        _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1__["_PerformanceLogger"].startMarkForComponent(perflogKey);
        this._initializeExtensionType();
        this._initPromise = this.onInit().then(function () {
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1__["_PerformanceLogger"].endMarkForComponent(perflogKey);
            _ms_sp_telemetry__WEBPACK_IMPORTED_MODULE_1__["_PerformanceLogger"].logPerformanceMetricToConsole(perflogKey, 'Extension.Init', _this.context.manifest.id, _this.context.manifest.alias);
        });
        return this._initPromise;
    };
    /**
     * This method can be overriden by different extension types (e.g. app customizers) to do specific initialization.
     *
     * @internal
     */
    BaseExtension.prototype._initializeExtensionType = function () {
        return;
    };
    Object.defineProperty(BaseExtension.prototype, "properties", {
        /**
         * Extension properties is a JavaScript object that are passed in by the application that initializes the extension.
         *
         * @remarks
         * Properties can be used in the extension code to define configurable behaviors. The application has control over
         * what properties to provide to an instance of the extension, however the most common way would be to have it
         * stored on the server as JSON and pass it as is to the extension on initialization.
         *
         * @readonly
         */
        get: function () {
            return this._properties;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * This event method is called when the client-side extension is first activated on the page.
     */
    BaseExtension.prototype.onInit = function () {
        return Promise.resolve();
    };
    BaseExtension.prototype._deserializeProperties = function (propertiesJson) {
        this._properties = {};
        try {
            if (propertiesJson && propertiesJson.trim() !== '') {
                this._properties = JSON.parse(propertiesJson);
            }
        }
        catch (e) {
            // This exception occurs e.g. when the SPField.clientSideComponentProperties contains a malformed
            // JSON string.  It is an "expected" user error (i.e. bad data), not a bug in our code.
            var logSource = this.context.serviceScope.consume(_microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_logSourceServiceKey"]);
            _microsoft_sp_diagnostics__WEBPACK_IMPORTED_MODULE_2__["_TraceLogger"].logError(logSource, new Error("Failed to deserialize properties for extension \"" + this.context.manifest.alias + "\"\n          + \" with id=" + this.context.manifest.id + ": " + e.message));
        }
    };
    __decorate([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__["virtual"]
    ], BaseExtension.prototype, "_initializeExtensionType", null);
    __decorate([
        _microsoft_decorators__WEBPACK_IMPORTED_MODULE_0__["virtual"]
    ], BaseExtension.prototype, "onInit", null);
    return BaseExtension;
}(_microsoft_sp_component_base__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));
/* harmony default export */ __webpack_exports__["default"] = (BaseExtension);


/***/ }),

/***/ "UWqr":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_UWqr__;

/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! exports provided: BaseExtension, ExtensionContext, _ExtensionManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseExtension__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseExtension */ "S021");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtension", function() { return _BaseExtension__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _ExtensionContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ExtensionContext */ "M+WR");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtensionContext", function() { return _ExtensionContext__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _ExtensionManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ExtensionManager */ "OZJt");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_ExtensionManager", function() { return _ExtensionManager__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/**
 * SharePoint Framework support for building client-side extensions.
 *
 * @packagedocumentation
 */





/***/ }),

/***/ "ut3N":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_ut3N__;

/***/ }),

/***/ "vpy3":
/*!*******************************!*\
  !*** external "resx-strings" ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_vpy3__;

/***/ }),

/***/ "wxtz":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_wxtz__;

/***/ }),

/***/ "xYWa":
/*!**************************************!*\
  !*** ./lib/ExtensionStrings.resx.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * This file was generated by a tool. Modifying it will produce unexpected behavior.
 */
var key = '_i/mWZag7vFX4034jbvvZkw';
var allStrings = ( false) ?
    undefined :
    __webpack_require__(/*! resx-strings */ "vpy3");
var strings = allStrings[key];
/* harmony default export */ __webpack_exports__["default"] = (strings);


/***/ })

/******/ })}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));;


/***/ }),

/***/ "@microsoft/decorators":
/*!****************************************!*\
  !*** external "@microsoft/decorators" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_decorators__;

/***/ }),

/***/ "@microsoft/sp-component-base":
/*!***********************************************!*\
  !*** external "@microsoft/sp-component-base" ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_component_base__;

/***/ }),

/***/ "@microsoft/sp-core-library":
/*!*********************************************!*\
  !*** external "@microsoft/sp-core-library" ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_core_library__;

/***/ }),

/***/ "@microsoft/sp-diagnostics":
/*!********************************************!*\
  !*** external "@microsoft/sp-diagnostics" ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_diagnostics__;

/***/ }),

/***/ "@microsoft/sp-loader":
/*!***************************************!*\
  !*** external "@microsoft/sp-loader" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__microsoft_sp_loader__;

/***/ }),

/***/ "@ms/sp-telemetry":
/*!***********************************!*\
  !*** external "@ms/sp-telemetry" ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE__ms_sp_telemetry__;

/***/ })

/******/ })});;
//# sourceMappingURL=sp-extension-base_en-us.js.map


define("aa0a46ec-1505-43cd-a44a-93f3a5aa460a_16.8.5", ["react"], function(__WEBPACK_EXTERNAL_MODULE_cDcd__) { return /******/ (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 = "mwqp");
/******/ })
/************************************************************************/
/******/ ({

/***/ "0ZZt":
/*!***************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/react-dom/16.8.5_react@16.8.5/node_modules/react-dom/index.js ***!
  \***************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


function checkDCE() {
  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
  if (
    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
  ) {
    return;
  }
  if (true) {
    // This branch is unreachable because this function is only called
    // in production, but the condition is true only in development.
    // Therefore if the branch is still here, dead code elimination wasn't
    // properly applied.
    // Don't change the message. React DevTools relies on it. Also make sure
    // this message doesn't occur elsewhere in this function, or it will cause
    // a false positive.
    throw new Error('^_^');
  }
  try {
    // Verify that the code above has been dead code eliminated (DCE'd).
    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
  } catch (err) {
    // DevTools shouldn't crash React, no matter what.
    // We should still report in case we break this code.
    console.error(err);
  }
}

if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ "lFMe");
}


/***/ }),

/***/ "BMHr":
/*!***********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.7.2/node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \***********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "KHSk":
/*!**************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/scheduler/0.13.6/node_modules/scheduler/index.js ***!
  \**************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ "rfJD");
}


/***/ }),

/***/ "cDcd":
/*!************************!*\
  !*** external "react" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_cDcd__;

/***/ }),

/***/ "fE1I":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (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;


/***/ }),

/***/ "jvHV":
/*!*************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/prop-types/15.7.2/node_modules/prop-types/checkPropTypes.js ***!
  \*************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "BMHr");
  var loggedTypeFailures = {};
  var has = Function.call.bind(Object.prototype.hasOwnProperty);

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "k5vw":
/*!****************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/scheduler/0.13.6/node_modules/scheduler/tracing.js ***!
  \****************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/scheduler-tracing.development.js */ "pXQh");
}


/***/ }),

/***/ "lFMe":
/*!***********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/react-dom/16.8.5_react@16.8.5/node_modules/react-dom/cjs/react-dom.development.js ***!
  \***********************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.8.5
 * react-dom.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

var React = __webpack_require__(/*! react */ "cDcd");
var _assign = __webpack_require__(/*! object-assign */ "sjay");
var checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ "jvHV");
var scheduler = __webpack_require__(/*! scheduler */ "KHSk");
var tracing = __webpack_require__(/*! scheduler/tracing */ "k5vw");

/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var validateFormat = function () {};

{
  validateFormat = function (format) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  };
}

function invariant(condition, format, a, b, c, d, e, f) {
  validateFormat(format);

  if (!condition) {
    var error = void 0;
    if (format === undefined) {
      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(format.replace(/%s/g, function () {
        return args[argIndex++];
      }));
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
}

// Relying on the `invariant()` implementation lets us
// preserve the format and params in the www builds.

!React ? invariant(false, 'ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.') : void 0;

var invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {
  var funcArgs = Array.prototype.slice.call(arguments, 3);
  try {
    func.apply(context, funcArgs);
  } catch (error) {
    this.onError(error);
  }
};

{
  // In DEV mode, we swap out invokeGuardedCallback for a special version
  // that plays more nicely with the browser's DevTools. The idea is to preserve
  // "Pause on exceptions" behavior. Because React wraps all user-provided
  // functions in invokeGuardedCallback, and the production version of
  // invokeGuardedCallback uses a try-catch, all user exceptions are treated
  // like caught exceptions, and the DevTools won't pause unless the developer
  // takes the extra step of enabling pause on caught exceptions. This is
  // unintuitive, though, because even though React has caught the error, from
  // the developer's perspective, the error is uncaught.
  //
  // To preserve the expected "Pause on exceptions" behavior, we don't use a
  // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake
  // DOM node, and call the user-provided callback from inside an event handler
  // for that fake event. If the callback throws, the error is "captured" using
  // a global event handler. But because the error happens in a different
  // event loop context, it does not interrupt the normal program flow.
  // Effectively, this gives us try-catch behavior without actually using
  // try-catch. Neat!

  // Check that the browser supports the APIs we need to implement our special
  // DEV version of invokeGuardedCallback
  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
    var fakeNode = document.createElement('react');

    var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {
      // If document doesn't exist we know for sure we will crash in this method
      // when we call document.createEvent(). However this can cause confusing
      // errors: https://github.com/facebookincubator/create-react-app/issues/3482
      // So we preemptively throw with a better message instead.
      !(typeof document !== 'undefined') ? invariant(false, 'The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.') : void 0;
      var evt = document.createEvent('Event');

      // Keeps track of whether the user-provided callback threw an error. We
      // set this to true at the beginning, then set it to false right after
      // calling the function. If the function errors, `didError` will never be
      // set to false. This strategy works even if the browser is flaky and
      // fails to call our global error handler, because it doesn't rely on
      // the error event at all.
      var didError = true;

      // Keeps track of the value of window.event so that we can reset it
      // during the callback to let user code access window.event in the
      // browsers that support it.
      var windowEvent = window.event;

      // Keeps track of the descriptor of window.event to restore it after event
      // dispatching: https://github.com/facebook/react/issues/13688
      var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');

      // Create an event handler for our fake event. We will synchronously
      // dispatch our fake event using `dispatchEvent`. Inside the handler, we
      // call the user-provided callback.
      var funcArgs = Array.prototype.slice.call(arguments, 3);
      function callCallback() {
        // We immediately remove the callback from event listeners so that
        // nested `invokeGuardedCallback` calls do not clash. Otherwise, a
        // nested call would trigger the fake event handlers of any call higher
        // in the stack.
        fakeNode.removeEventListener(evtType, callCallback, false);

        // We check for window.hasOwnProperty('event') to prevent the
        // window.event assignment in both IE <= 10 as they throw an error
        // "Member not found" in strict mode, and in Firefox which does not
        // support window.event.
        if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {
          window.event = windowEvent;
        }

        func.apply(context, funcArgs);
        didError = false;
      }

      // Create a global error event handler. We use this to capture the value
      // that was thrown. It's possible that this error handler will fire more
      // than once; for example, if non-React code also calls `dispatchEvent`
      // and a handler for that event throws. We should be resilient to most of
      // those cases. Even if our error event handler fires more than once, the
      // last error event is always used. If the callback actually does error,
      // we know that the last error event is the correct one, because it's not
      // possible for anything else to have happened in between our callback
      // erroring and the code that follows the `dispatchEvent` call below. If
      // the callback doesn't error, but the error event was fired, we know to
      // ignore it because `didError` will be false, as described above.
      var error = void 0;
      // Use this to track whether the error event is ever called.
      var didSetError = false;
      var isCrossOriginError = false;

      function handleWindowError(event) {
        error = event.error;
        didSetError = true;
        if (error === null && event.colno === 0 && event.lineno === 0) {
          isCrossOriginError = true;
        }
        if (event.defaultPrevented) {
          // Some other error handler has prevented default.
          // Browsers silence the error report if this happens.
          // We'll remember this to later decide whether to log it or not.
          if (error != null && typeof error === 'object') {
            try {
              error._suppressLogging = true;
            } catch (inner) {
              // Ignore.
            }
          }
        }
      }

      // Create a fake event type.
      var evtType = 'react-' + (name ? name : 'invokeguardedcallback');

      // Attach our event handlers
      window.addEventListener('error', handleWindowError);
      fakeNode.addEventListener(evtType, callCallback, false);

      // Synchronously dispatch our fake event. If the user-provided function
      // errors, it will trigger our global error handler.
      evt.initEvent(evtType, false, false);
      fakeNode.dispatchEvent(evt);

      if (windowEventDescriptor) {
        Object.defineProperty(window, 'event', windowEventDescriptor);
      }

      if (didError) {
        if (!didSetError) {
          // The callback errored, but the error event never fired.
          error = new Error('An error was thrown inside one of your components, but React ' + "doesn't know what it was. This is likely due to browser " + 'flakiness. React does its best to preserve the "Pause on ' + 'exceptions" behavior of the DevTools, which requires some ' + "DEV-mode only tricks. It's possible that these don't work in " + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');
        } else if (isCrossOriginError) {
          error = new Error("A cross-origin error was thrown. React doesn't have access to " + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');
        }
        this.onError(error);
      }

      // Remove our event listeners
      window.removeEventListener('error', handleWindowError);
    };

    invokeGuardedCallbackImpl = invokeGuardedCallbackDev;
  }
}

var invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;

// Used by Fiber to simulate a try-catch.
var hasError = false;
var caughtError = null;

// Used by event system to capture/rethrow the first error.
var hasRethrowError = false;
var rethrowError = null;

var reporter = {
  onError: function (error) {
    hasError = true;
    caughtError = error;
  }
};

/**
 * Call a function while guarding against errors that happens within it.
 * Returns an error if it throws, otherwise null.
 *
 * In production, this is implemented using a try-catch. The reason we don't
 * use a try-catch directly is so that we can swap out a different
 * implementation in DEV mode.
 *
 * @param {String} name of the guard to use for logging or debugging
 * @param {Function} func The function to invoke
 * @param {*} context The context to use when calling the function
 * @param {...*} args Arguments for function
 */
function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {
  hasError = false;
  caughtError = null;
  invokeGuardedCallbackImpl$1.apply(reporter, arguments);
}

/**
 * Same as invokeGuardedCallback, but instead of returning an error, it stores
 * it in a global so it can be rethrown by `rethrowCaughtError` later.
 * TODO: See if caughtError and rethrowError can be unified.
 *
 * @param {String} name of the guard to use for logging or debugging
 * @param {Function} func The function to invoke
 * @param {*} context The context to use when calling the function
 * @param {...*} args Arguments for function
 */
function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {
  invokeGuardedCallback.apply(this, arguments);
  if (hasError) {
    var error = clearCaughtError();
    if (!hasRethrowError) {
      hasRethrowError = true;
      rethrowError = error;
    }
  }
}

/**
 * During execution of guarded functions we will capture the first error which
 * we will rethrow to be handled by the top level error handler.
 */
function rethrowCaughtError() {
  if (hasRethrowError) {
    var error = rethrowError;
    hasRethrowError = false;
    rethrowError = null;
    throw error;
  }
}

function hasCaughtError() {
  return hasError;
}

function clearCaughtError() {
  if (hasError) {
    var error = caughtError;
    hasError = false;
    caughtError = null;
    return error;
  } else {
    invariant(false, 'clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.');
  }
}

/**
 * Injectable ordering of event plugins.
 */
var eventPluginOrder = null;

/**
 * Injectable mapping from names to event plugin modules.
 */
var namesToPlugins = {};

/**
 * Recomputes the plugin list using the injected plugins and plugin ordering.
 *
 * @private
 */
function recomputePluginOrdering() {
  if (!eventPluginOrder) {
    // Wait until an `eventPluginOrder` is injected.
    return;
  }
  for (var pluginName in namesToPlugins) {
    var pluginModule = namesToPlugins[pluginName];
    var pluginIndex = eventPluginOrder.indexOf(pluginName);
    !(pluginIndex > -1) ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : void 0;
    if (plugins[pluginIndex]) {
      continue;
    }
    !pluginModule.extractEvents ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : void 0;
    plugins[pluginIndex] = pluginModule;
    var publishedEvents = pluginModule.eventTypes;
    for (var eventName in publishedEvents) {
      !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : void 0;
    }
  }
}

/**
 * Publishes an event so that it can be dispatched by the supplied plugin.
 *
 * @param {object} dispatchConfig Dispatch configuration for the event.
 * @param {object} PluginModule Plugin publishing the event.
 * @return {boolean} True if the event was successfully published.
 * @private
 */
function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
  !!eventNameDispatchConfigs.hasOwnProperty(eventName) ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : void 0;
  eventNameDispatchConfigs[eventName] = dispatchConfig;

  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
  if (phasedRegistrationNames) {
    for (var phaseName in phasedRegistrationNames) {
      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
        var phasedRegistrationName = phasedRegistrationNames[phaseName];
        publishRegistrationName(phasedRegistrationName, pluginModule, eventName);
      }
    }
    return true;
  } else if (dispatchConfig.registrationName) {
    publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);
    return true;
  }
  return false;
}

/**
 * Publishes a registration name that is used to identify dispatched events.
 *
 * @param {string} registrationName Registration name to add.
 * @param {object} PluginModule Plugin publishing the event.
 * @private
 */
function publishRegistrationName(registrationName, pluginModule, eventName) {
  !!registrationNameModules[registrationName] ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : void 0;
  registrationNameModules[registrationName] = pluginModule;
  registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;

  {
    var lowerCasedName = registrationName.toLowerCase();
    possibleRegistrationNames[lowerCasedName] = registrationName;

    if (registrationName === 'onDoubleClick') {
      possibleRegistrationNames.ondblclick = registrationName;
    }
  }
}

/**
 * Registers plugins so that they can extract and dispatch events.
 *
 * @see {EventPluginHub}
 */

/**
 * Ordered list of injected plugins.
 */
var plugins = [];

/**
 * Mapping from event name to dispatch config
 */
var eventNameDispatchConfigs = {};

/**
 * Mapping from registration name to plugin module
 */
var registrationNameModules = {};

/**
 * Mapping from registration name to event name
 */
var registrationNameDependencies = {};

/**
 * Mapping from lowercase registration names to the properly cased version,
 * used to warn in the case of missing event handlers. Available
 * only in true.
 * @type {Object}
 */
var possibleRegistrationNames = {};
// Trust the developer to only use possibleRegistrationNames in true

/**
 * Injects an ordering of plugins (by plugin name). This allows the ordering
 * to be decoupled from injection of the actual plugins so that ordering is
 * always deterministic regardless of packaging, on-the-fly injection, etc.
 *
 * @param {array} InjectedEventPluginOrder
 * @internal
 * @see {EventPluginHub.injection.injectEventPluginOrder}
 */
function injectEventPluginOrder(injectedEventPluginOrder) {
  !!eventPluginOrder ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : void 0;
  // Clone the ordering so it cannot be dynamically mutated.
  eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);
  recomputePluginOrdering();
}

/**
 * Injects plugins to be used by `EventPluginHub`. The plugin names must be
 * in the ordering injected by `injectEventPluginOrder`.
 *
 * Plugins can be injected as part of page initialization or on-the-fly.
 *
 * @param {object} injectedNamesToPlugins Map from names to plugin modules.
 * @internal
 * @see {EventPluginHub.injection.injectEventPluginsByName}
 */
function injectEventPluginsByName(injectedNamesToPlugins) {
  var isOrderingDirty = false;
  for (var pluginName in injectedNamesToPlugins) {
    if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
      continue;
    }
    var pluginModule = injectedNamesToPlugins[pluginName];
    if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {
      !!namesToPlugins[pluginName] ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : void 0;
      namesToPlugins[pluginName] = pluginModule;
      isOrderingDirty = true;
    }
  }
  if (isOrderingDirty) {
    recomputePluginOrdering();
  }
}

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warningWithoutStack = function () {};

{
  warningWithoutStack = function (condition, format) {
    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }

    if (format === undefined) {
      throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');
    }
    if (args.length > 8) {
      // Check before the condition to catch violations early.
      throw new Error('warningWithoutStack() currently supports at most 8 arguments.');
    }
    if (condition) {
      return;
    }
    if (typeof console !== 'undefined') {
      var argsWithFormat = args.map(function (item) {
        return '' + item;
      });
      argsWithFormat.unshift('Warning: ' + format);

      // We intentionally don't use spread (or .apply) directly because it
      // breaks IE9: https://github.com/facebook/react/issues/13610
      Function.prototype.apply.call(console.error, console, argsWithFormat);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      var argIndex = 0;
      var message = 'Warning: ' + format.replace(/%s/g, function () {
        return args[argIndex++];
      });
      throw new Error(message);
    } catch (x) {}
  };
}

var warningWithoutStack$1 = warningWithoutStack;

var getFiberCurrentPropsFromNode = null;
var getInstanceFromNode = null;
var getNodeFromInstance = null;

function setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {
  getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;
  getInstanceFromNode = getInstanceFromNodeImpl;
  getNodeFromInstance = getNodeFromInstanceImpl;
  {
    !(getNodeFromInstance && getInstanceFromNode) ? warningWithoutStack$1(false, 'EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;
  }
}

var validateEventDispatches = void 0;
{
  validateEventDispatches = function (event) {
    var dispatchListeners = event._dispatchListeners;
    var dispatchInstances = event._dispatchInstances;

    var listenersIsArr = Array.isArray(dispatchListeners);
    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;

    var instancesIsArr = Array.isArray(dispatchInstances);
    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;

    !(instancesIsArr === listenersIsArr && instancesLen === listenersLen) ? warningWithoutStack$1(false, 'EventPluginUtils: Invalid `event`.') : void 0;
  };
}

/**
 * Dispatch the event to the listener.
 * @param {SyntheticEvent} event SyntheticEvent to handle
 * @param {function} listener Application-level callback
 * @param {*} inst Internal component instance
 */
function executeDispatch(event, listener, inst) {
  var type = event.type || 'unknown-event';
  event.currentTarget = getNodeFromInstance(inst);
  invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);
  event.currentTarget = null;
}

/**
 * Standard/simple iteration through an event's collected dispatches.
 */
function executeDispatchesInOrder(event) {
  var dispatchListeners = event._dispatchListeners;
  var dispatchInstances = event._dispatchInstances;
  {
    validateEventDispatches(event);
  }
  if (Array.isArray(dispatchListeners)) {
    for (var i = 0; i < dispatchListeners.length; i++) {
      if (event.isPropagationStopped()) {
        break;
      }
      // Listeners and Instances are two parallel arrays that are always in sync.
      executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);
    }
  } else if (dispatchListeners) {
    executeDispatch(event, dispatchListeners, dispatchInstances);
  }
  event._dispatchListeners = null;
  event._dispatchInstances = null;
}

/**
 * @see executeDispatchesInOrderStopAtTrueImpl
 */


/**
 * Execution of a "direct" dispatch - there must be at most one dispatch
 * accumulated on the event or it is considered an error. It doesn't really make
 * sense for an event with multiple dispatches (bubbled) to keep track of the
 * return values at each dispatch execution, but it does tend to make sense when
 * dealing with "direct" dispatches.
 *
 * @return {*} The return value of executing the single dispatch.
 */


/**
 * @param {SyntheticEvent} event
 * @return {boolean} True iff number of dispatches accumulated is greater than 0.
 */

/**
 * Accumulates items that must not be null or undefined into the first one. This
 * is used to conserve memory by avoiding array allocations, and thus sacrifices
 * API cleanness. Since `current` can be null before being passed in and not
 * null after this function, make sure to assign it back to `current`:
 *
 * `a = accumulateInto(a, b);`
 *
 * This API should be sparingly used. Try `accumulate` for something cleaner.
 *
 * @return {*|array<*>} An accumulation of items.
 */

function accumulateInto(current, next) {
  !(next != null) ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : void 0;

  if (current == null) {
    return next;
  }

  // Both are not empty. Warning: Never call x.concat(y) when you are not
  // certain that x is an Array (x could be a string with concat method).
  if (Array.isArray(current)) {
    if (Array.isArray(next)) {
      current.push.apply(current, next);
      return current;
    }
    current.push(next);
    return current;
  }

  if (Array.isArray(next)) {
    // A bit too dangerous to mutate `next`.
    return [current].concat(next);
  }

  return [current, next];
}

/**
 * @param {array} arr an "accumulation" of items which is either an Array or
 * a single item. Useful when paired with the `accumulate` module. This is a
 * simple utility that allows us to reason about a collection of items, but
 * handling the case when there is exactly one item (and we do not need to
 * allocate an array).
 * @param {function} cb Callback invoked with each element or a collection.
 * @param {?} [scope] Scope used as `this` in a callback.
 */
function forEachAccumulated(arr, cb, scope) {
  if (Array.isArray(arr)) {
    arr.forEach(cb, scope);
  } else if (arr) {
    cb.call(scope, arr);
  }
}

/**
 * Internal queue of events that have accumulated their dispatches and are
 * waiting to have their dispatches executed.
 */
var eventQueue = null;

/**
 * Dispatches an event and releases it back into the pool, unless persistent.
 *
 * @param {?object} event Synthetic event to be dispatched.
 * @private
 */
var executeDispatchesAndRelease = function (event) {
  if (event) {
    executeDispatchesInOrder(event);

    if (!event.isPersistent()) {
      event.constructor.release(event);
    }
  }
};
var executeDispatchesAndReleaseTopLevel = function (e) {
  return executeDispatchesAndRelease(e);
};

function isInteractive(tag) {
  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
}

function shouldPreventMouseEvent(name, type, props) {
  switch (name) {
    case 'onClick':
    case 'onClickCapture':
    case 'onDoubleClick':
    case 'onDoubleClickCapture':
    case 'onMouseDown':
    case 'onMouseDownCapture':
    case 'onMouseMove':
    case 'onMouseMoveCapture':
    case 'onMouseUp':
    case 'onMouseUpCapture':
      return !!(props.disabled && isInteractive(type));
    default:
      return false;
  }
}

/**
 * This is a unified interface for event plugins to be installed and configured.
 *
 * Event plugins can implement the following properties:
 *
 *   `extractEvents` {function(string, DOMEventTarget, string, object): *}
 *     Required. When a top-level event is fired, this method is expected to
 *     extract synthetic events that will in turn be queued and dispatched.
 *
 *   `eventTypes` {object}
 *     Optional, plugins that fire events must publish a mapping of registration
 *     names that are used to register listeners. Values of this mapping must
 *     be objects that contain `registrationName` or `phasedRegistrationNames`.
 *
 *   `executeDispatch` {function(object, function, string)}
 *     Optional, allows plugins to override how an event gets dispatched. By
 *     default, the listener is simply invoked.
 *
 * Each plugin that is injected into `EventsPluginHub` is immediately operable.
 *
 * @public
 */

/**
 * Methods for injecting dependencies.
 */
var injection = {
  /**
   * @param {array} InjectedEventPluginOrder
   * @public
   */
  injectEventPluginOrder: injectEventPluginOrder,

  /**
   * @param {object} injectedNamesToPlugins Map from names to plugin modules.
   */
  injectEventPluginsByName: injectEventPluginsByName
};

/**
 * @param {object} inst The instance, which is the source of events.
 * @param {string} registrationName Name of listener (e.g. `onClick`).
 * @return {?function} The stored callback.
 */
function getListener(inst, registrationName) {
  var listener = void 0;

  // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not
  // live here; needs to be moved to a better place soon
  var stateNode = inst.stateNode;
  if (!stateNode) {
    // Work in progress (ex: onload events in incremental mode).
    return null;
  }
  var props = getFiberCurrentPropsFromNode(stateNode);
  if (!props) {
    // Work in progress.
    return null;
  }
  listener = props[registrationName];
  if (shouldPreventMouseEvent(registrationName, inst.type, props)) {
    return null;
  }
  !(!listener || typeof listener === 'function') ? invariant(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener) : void 0;
  return listener;
}

/**
 * Allows registered plugins an opportunity to extract events from top-level
 * native browser events.
 *
 * @return {*} An accumulation of synthetic events.
 * @internal
 */
function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
  var events = null;
  for (var i = 0; i < plugins.length; i++) {
    // Not every plugin in the ordering may be loaded at runtime.
    var possiblePlugin = plugins[i];
    if (possiblePlugin) {
      var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
      if (extractedEvents) {
        events = accumulateInto(events, extractedEvents);
      }
    }
  }
  return events;
}

function runEventsInBatch(events) {
  if (events !== null) {
    eventQueue = accumulateInto(eventQueue, events);
  }

  // Set `eventQueue` to null before processing it so that we can tell if more
  // events get enqueued while processing.
  var processingEventQueue = eventQueue;
  eventQueue = null;

  if (!processingEventQueue) {
    return;
  }

  forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);
  !!eventQueue ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : void 0;
  // This would be a good time to rethrow if any of the event handlers threw.
  rethrowCaughtError();
}

function runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
  var events = extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
  runEventsInBatch(events);
}

var FunctionComponent = 0;
var ClassComponent = 1;
var IndeterminateComponent = 2; // Before we know whether it is function or class
var HostRoot = 3; // Root of a host tree. Could be nested inside another node.
var HostPortal = 4; // A subtree. Could be an entry point to a different renderer.
var HostComponent = 5;
var HostText = 6;
var Fragment = 7;
var Mode = 8;
var ContextConsumer = 9;
var ContextProvider = 10;
var ForwardRef = 11;
var Profiler = 12;
var SuspenseComponent = 13;
var MemoComponent = 14;
var SimpleMemoComponent = 15;
var LazyComponent = 16;
var IncompleteClassComponent = 17;
var DehydratedSuspenseComponent = 18;

var randomKey = Math.random().toString(36).slice(2);
var internalInstanceKey = '__reactInternalInstance$' + randomKey;
var internalEventHandlersKey = '__reactEventHandlers$' + randomKey;

function precacheFiberNode(hostInst, node) {
  node[internalInstanceKey] = hostInst;
}

/**
 * Given a DOM node, return the closest ReactDOMComponent or
 * ReactDOMTextComponent instance ancestor.
 */
function getClosestInstanceFromNode(node) {
  if (node[internalInstanceKey]) {
    return node[internalInstanceKey];
  }

  while (!node[internalInstanceKey]) {
    if (node.parentNode) {
      node = node.parentNode;
    } else {
      // Top of the tree. This node must not be part of a React tree (or is
      // unmounted, potentially).
      return null;
    }
  }

  var inst = node[internalInstanceKey];
  if (inst.tag === HostComponent || inst.tag === HostText) {
    // In Fiber, this will always be the deepest root.
    return inst;
  }

  return null;
}

/**
 * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent
 * instance, or null if the node was not rendered by this React.
 */
function getInstanceFromNode$1(node) {
  var inst = node[internalInstanceKey];
  if (inst) {
    if (inst.tag === HostComponent || inst.tag === HostText) {
      return inst;
    } else {
      return null;
    }
  }
  return null;
}

/**
 * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding
 * DOM node.
 */
function getNodeFromInstance$1(inst) {
  if (inst.tag === HostComponent || inst.tag === HostText) {
    // In Fiber this, is just the state node right now. We assume it will be
    // a host component or host text.
    return inst.stateNode;
  }

  // Without this first invariant, passing a non-DOM-component triggers the next
  // invariant for a missing parent, which is super confusing.
  invariant(false, 'getNodeFromInstance: Invalid argument.');
}

function getFiberCurrentPropsFromNode$1(node) {
  return node[internalEventHandlersKey] || null;
}

function updateFiberProps(node, props) {
  node[internalEventHandlersKey] = props;
}

function getParent(inst) {
  do {
    inst = inst.return;
    // TODO: If this is a HostRoot we might want to bail out.
    // That is depending on if we want nested subtrees (layers) to bubble
    // events to their parent. We could also go through parentNode on the
    // host node but that wouldn't work for React Native and doesn't let us
    // do the portal feature.
  } while (inst && inst.tag !== HostComponent);
  if (inst) {
    return inst;
  }
  return null;
}

/**
 * Return the lowest common ancestor of A and B, or null if they are in
 * different trees.
 */
function getLowestCommonAncestor(instA, instB) {
  var depthA = 0;
  for (var tempA = instA; tempA; tempA = getParent(tempA)) {
    depthA++;
  }
  var depthB = 0;
  for (var tempB = instB; tempB; tempB = getParent(tempB)) {
    depthB++;
  }

  // If A is deeper, crawl up.
  while (depthA - depthB > 0) {
    instA = getParent(instA);
    depthA--;
  }

  // If B is deeper, crawl up.
  while (depthB - depthA > 0) {
    instB = getParent(instB);
    depthB--;
  }

  // Walk in lockstep until we find a match.
  var depth = depthA;
  while (depth--) {
    if (instA === instB || instA === instB.alternate) {
      return instA;
    }
    instA = getParent(instA);
    instB = getParent(instB);
  }
  return null;
}

/**
 * Return if A is an ancestor of B.
 */


/**
 * Return the parent instance of the passed-in instance.
 */


/**
 * Simulates the traversal of a two-phase, capture/bubble event dispatch.
 */
function traverseTwoPhase(inst, fn, arg) {
  var path = [];
  while (inst) {
    path.push(inst);
    inst = getParent(inst);
  }
  var i = void 0;
  for (i = path.length; i-- > 0;) {
    fn(path[i], 'captured', arg);
  }
  for (i = 0; i < path.length; i++) {
    fn(path[i], 'bubbled', arg);
  }
}

/**
 * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that
 * should would receive a `mouseEnter` or `mouseLeave` event.
 *
 * Does not invoke the callback on the nearest common ancestor because nothing
 * "entered" or "left" that element.
 */
function traverseEnterLeave(from, to, fn, argFrom, argTo) {
  var common = from && to ? getLowestCommonAncestor(from, to) : null;
  var pathFrom = [];
  while (true) {
    if (!from) {
      break;
    }
    if (from === common) {
      break;
    }
    var alternate = from.alternate;
    if (alternate !== null && alternate === common) {
      break;
    }
    pathFrom.push(from);
    from = getParent(from);
  }
  var pathTo = [];
  while (true) {
    if (!to) {
      break;
    }
    if (to === common) {
      break;
    }
    var _alternate = to.alternate;
    if (_alternate !== null && _alternate === common) {
      break;
    }
    pathTo.push(to);
    to = getParent(to);
  }
  for (var i = 0; i < pathFrom.length; i++) {
    fn(pathFrom[i], 'bubbled', argFrom);
  }
  for (var _i = pathTo.length; _i-- > 0;) {
    fn(pathTo[_i], 'captured', argTo);
  }
}

/**
 * Some event types have a notion of different registration names for different
 * "phases" of propagation. This finds listeners by a given phase.
 */
function listenerAtPhase(inst, event, propagationPhase) {
  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];
  return getListener(inst, registrationName);
}

/**
 * A small set of propagation patterns, each of which will accept a small amount
 * of information, and generate a set of "dispatch ready event objects" - which
 * are sets of events that have already been annotated with a set of dispatched
 * listener functions/ids. The API is designed this way to discourage these
 * propagation strategies from actually executing the dispatches, since we
 * always want to collect the entire set of dispatches before executing even a
 * single one.
 */

/**
 * Tags a `SyntheticEvent` with dispatched listeners. Creating this function
 * here, allows us to not have to bind or create functions for each event.
 * Mutating the event's members allows us to not have to create a wrapping
 * "dispatch" object that pairs the event with the listener.
 */
function accumulateDirectionalDispatches(inst, phase, event) {
  {
    !inst ? warningWithoutStack$1(false, 'Dispatching inst must not be null') : void 0;
  }
  var listener = listenerAtPhase(inst, event, phase);
  if (listener) {
    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
  }
}

/**
 * Collect dispatches (must be entirely collected before dispatching - see unit
 * tests). Lazily allocate the array to conserve memory.  We must loop through
 * each event and perform the traversal for each one. We cannot perform a
 * single traversal for the entire collection of events because each event may
 * have a different target.
 */
function accumulateTwoPhaseDispatchesSingle(event) {
  if (event && event.dispatchConfig.phasedRegistrationNames) {
    traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);
  }
}

/**
 * Accumulates without regard to direction, does not look for phased
 * registration names. Same as `accumulateDirectDispatchesSingle` but without
 * requiring that the `dispatchMarker` be the same as the dispatched ID.
 */
function accumulateDispatches(inst, ignoredDirection, event) {
  if (inst && event && event.dispatchConfig.registrationName) {
    var registrationName = event.dispatchConfig.registrationName;
    var listener = getListener(inst, registrationName);
    if (listener) {
      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
    }
  }
}

/**
 * Accumulates dispatches on an `SyntheticEvent`, but only for the
 * `dispatchMarker`.
 * @param {SyntheticEvent} event
 */
function accumulateDirectDispatchesSingle(event) {
  if (event && event.dispatchConfig.registrationName) {
    accumulateDispatches(event._targetInst, null, event);
  }
}

function accumulateTwoPhaseDispatches(events) {
  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);
}



function accumulateEnterLeaveDispatches(leave, enter, from, to) {
  traverseEnterLeave(from, to, accumulateDispatches, leave, enter);
}

function accumulateDirectDispatches(events) {
  forEachAccumulated(events, accumulateDirectDispatchesSingle);
}

var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);

// Do not uses the below two methods directly!
// Instead use constants exported from DOMTopLevelEventTypes in ReactDOM.
// (It is the only module that is allowed to access these methods.)

function unsafeCastStringToDOMTopLevelType(topLevelType) {
  return topLevelType;
}

function unsafeCastDOMTopLevelTypeToString(topLevelType) {
  return topLevelType;
}

/**
 * Generate a mapping of standard vendor prefixes using the defined style property and event name.
 *
 * @param {string} styleProp
 * @param {string} eventName
 * @returns {object}
 */
function makePrefixMap(styleProp, eventName) {
  var prefixes = {};

  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
  prefixes['Webkit' + styleProp] = 'webkit' + eventName;
  prefixes['Moz' + styleProp] = 'moz' + eventName;

  return prefixes;
}

/**
 * A list of event names to a configurable list of vendor prefixes.
 */
var vendorPrefixes = {
  animationend: makePrefixMap('Animation', 'AnimationEnd'),
  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),
  animationstart: makePrefixMap('Animation', 'AnimationStart'),
  transitionend: makePrefixMap('Transition', 'TransitionEnd')
};

/**
 * Event names that have already been detected and prefixed (if applicable).
 */
var prefixedEventNames = {};

/**
 * Element to check for prefixes on.
 */
var style = {};

/**
 * Bootstrap if a DOM exists.
 */
if (canUseDOM) {
  style = document.createElement('div').style;

  // On some platforms, in particular some releases of Android 4.x,
  // the un-prefixed "animation" and "transition" properties are defined on the
  // style object but the events that fire will still be prefixed, so we need
  // to check if the un-prefixed events are usable, and if not remove them from the map.
  if (!('AnimationEvent' in window)) {
    delete vendorPrefixes.animationend.animation;
    delete vendorPrefixes.animationiteration.animation;
    delete vendorPrefixes.animationstart.animation;
  }

  // Same as above
  if (!('TransitionEvent' in window)) {
    delete vendorPrefixes.transitionend.transition;
  }
}

/**
 * Attempts to determine the correct vendor prefixed event name.
 *
 * @param {string} eventName
 * @returns {string}
 */
function getVendorPrefixedEventName(eventName) {
  if (prefixedEventNames[eventName]) {
    return prefixedEventNames[eventName];
  } else if (!vendorPrefixes[eventName]) {
    return eventName;
  }

  var prefixMap = vendorPrefixes[eventName];

  for (var styleProp in prefixMap) {
    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {
      return prefixedEventNames[eventName] = prefixMap[styleProp];
    }
  }

  return eventName;
}

/**
 * To identify top level events in ReactDOM, we use constants defined by this
 * module. This is the only module that uses the unsafe* methods to express
 * that the constants actually correspond to the browser event names. This lets
 * us save some bundle size by avoiding a top level type -> event name map.
 * The rest of ReactDOM code should import top level types from this file.
 */
var TOP_ABORT = unsafeCastStringToDOMTopLevelType('abort');
var TOP_ANIMATION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationend'));
var TOP_ANIMATION_ITERATION = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationiteration'));
var TOP_ANIMATION_START = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationstart'));
var TOP_BLUR = unsafeCastStringToDOMTopLevelType('blur');
var TOP_CAN_PLAY = unsafeCastStringToDOMTopLevelType('canplay');
var TOP_CAN_PLAY_THROUGH = unsafeCastStringToDOMTopLevelType('canplaythrough');
var TOP_CANCEL = unsafeCastStringToDOMTopLevelType('cancel');
var TOP_CHANGE = unsafeCastStringToDOMTopLevelType('change');
var TOP_CLICK = unsafeCastStringToDOMTopLevelType('click');
var TOP_CLOSE = unsafeCastStringToDOMTopLevelType('close');
var TOP_COMPOSITION_END = unsafeCastStringToDOMTopLevelType('compositionend');
var TOP_COMPOSITION_START = unsafeCastStringToDOMTopLevelType('compositionstart');
var TOP_COMPOSITION_UPDATE = unsafeCastStringToDOMTopLevelType('compositionupdate');
var TOP_CONTEXT_MENU = unsafeCastStringToDOMTopLevelType('contextmenu');
var TOP_COPY = unsafeCastStringToDOMTopLevelType('copy');
var TOP_CUT = unsafeCastStringToDOMTopLevelType('cut');
var TOP_DOUBLE_CLICK = unsafeCastStringToDOMTopLevelType('dblclick');
var TOP_AUX_CLICK = unsafeCastStringToDOMTopLevelType('auxclick');
var TOP_DRAG = unsafeCastStringToDOMTopLevelType('drag');
var TOP_DRAG_END = unsafeCastStringToDOMTopLevelType('dragend');
var TOP_DRAG_ENTER = unsafeCastStringToDOMTopLevelType('dragenter');
var TOP_DRAG_EXIT = unsafeCastStringToDOMTopLevelType('dragexit');
var TOP_DRAG_LEAVE = unsafeCastStringToDOMTopLevelType('dragleave');
var TOP_DRAG_OVER = unsafeCastStringToDOMTopLevelType('dragover');
var TOP_DRAG_START = unsafeCastStringToDOMTopLevelType('dragstart');
var TOP_DROP = unsafeCastStringToDOMTopLevelType('drop');
var TOP_DURATION_CHANGE = unsafeCastStringToDOMTopLevelType('durationchange');
var TOP_EMPTIED = unsafeCastStringToDOMTopLevelType('emptied');
var TOP_ENCRYPTED = unsafeCastStringToDOMTopLevelType('encrypted');
var TOP_ENDED = unsafeCastStringToDOMTopLevelType('ended');
var TOP_ERROR = unsafeCastStringToDOMTopLevelType('error');
var TOP_FOCUS = unsafeCastStringToDOMTopLevelType('focus');
var TOP_GOT_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('gotpointercapture');
var TOP_INPUT = unsafeCastStringToDOMTopLevelType('input');
var TOP_INVALID = unsafeCastStringToDOMTopLevelType('invalid');
var TOP_KEY_DOWN = unsafeCastStringToDOMTopLevelType('keydown');
var TOP_KEY_PRESS = unsafeCastStringToDOMTopLevelType('keypress');
var TOP_KEY_UP = unsafeCastStringToDOMTopLevelType('keyup');
var TOP_LOAD = unsafeCastStringToDOMTopLevelType('load');
var TOP_LOAD_START = unsafeCastStringToDOMTopLevelType('loadstart');
var TOP_LOADED_DATA = unsafeCastStringToDOMTopLevelType('loadeddata');
var TOP_LOADED_METADATA = unsafeCastStringToDOMTopLevelType('loadedmetadata');
var TOP_LOST_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('lostpointercapture');
var TOP_MOUSE_DOWN = unsafeCastStringToDOMTopLevelType('mousedown');
var TOP_MOUSE_MOVE = unsafeCastStringToDOMTopLevelType('mousemove');
var TOP_MOUSE_OUT = unsafeCastStringToDOMTopLevelType('mouseout');
var TOP_MOUSE_OVER = unsafeCastStringToDOMTopLevelType('mouseover');
var TOP_MOUSE_UP = unsafeCastStringToDOMTopLevelType('mouseup');
var TOP_PASTE = unsafeCastStringToDOMTopLevelType('paste');
var TOP_PAUSE = unsafeCastStringToDOMTopLevelType('pause');
var TOP_PLAY = unsafeCastStringToDOMTopLevelType('play');
var TOP_PLAYING = unsafeCastStringToDOMTopLevelType('playing');
var TOP_POINTER_CANCEL = unsafeCastStringToDOMTopLevelType('pointercancel');
var TOP_POINTER_DOWN = unsafeCastStringToDOMTopLevelType('pointerdown');


var TOP_POINTER_MOVE = unsafeCastStringToDOMTopLevelType('pointermove');
var TOP_POINTER_OUT = unsafeCastStringToDOMTopLevelType('pointerout');
var TOP_POINTER_OVER = unsafeCastStringToDOMTopLevelType('pointerover');
var TOP_POINTER_UP = unsafeCastStringToDOMTopLevelType('pointerup');
var TOP_PROGRESS = unsafeCastStringToDOMTopLevelType('progress');
var TOP_RATE_CHANGE = unsafeCastStringToDOMTopLevelType('ratechange');
var TOP_RESET = unsafeCastStringToDOMTopLevelType('reset');
var TOP_SCROLL = unsafeCastStringToDOMTopLevelType('scroll');
var TOP_SEEKED = unsafeCastStringToDOMTopLevelType('seeked');
var TOP_SEEKING = unsafeCastStringToDOMTopLevelType('seeking');
var TOP_SELECTION_CHANGE = unsafeCastStringToDOMTopLevelType('selectionchange');
var TOP_STALLED = unsafeCastStringToDOMTopLevelType('stalled');
var TOP_SUBMIT = unsafeCastStringToDOMTopLevelType('submit');
var TOP_SUSPEND = unsafeCastStringToDOMTopLevelType('suspend');
var TOP_TEXT_INPUT = unsafeCastStringToDOMTopLevelType('textInput');
var TOP_TIME_UPDATE = unsafeCastStringToDOMTopLevelType('timeupdate');
var TOP_TOGGLE = unsafeCastStringToDOMTopLevelType('toggle');
var TOP_TOUCH_CANCEL = unsafeCastStringToDOMTopLevelType('touchcancel');
var TOP_TOUCH_END = unsafeCastStringToDOMTopLevelType('touchend');
var TOP_TOUCH_MOVE = unsafeCastStringToDOMTopLevelType('touchmove');
var TOP_TOUCH_START = unsafeCastStringToDOMTopLevelType('touchstart');
var TOP_TRANSITION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('transitionend'));
var TOP_VOLUME_CHANGE = unsafeCastStringToDOMTopLevelType('volumechange');
var TOP_WAITING = unsafeCastStringToDOMTopLevelType('waiting');
var TOP_WHEEL = unsafeCastStringToDOMTopLevelType('wheel');

// List of events that need to be individually attached to media elements.
// Note that events in this list will *not* be listened to at the top level
// unless they're explicitly whitelisted in `ReactBrowserEventEmitter.listenTo`.
var mediaEventTypes = [TOP_ABORT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_VOLUME_CHANGE, TOP_WAITING];

function getRawEventName(topLevelType) {
  return unsafeCastDOMTopLevelTypeToString(topLevelType);
}

/**
 * These variables store information about text content of a target node,
 * allowing comparison of content before and after a given event.
 *
 * Identify the node where selection currently begins, then observe
 * both its text content and its current position in the DOM. Since the
 * browser may natively replace the target node during composition, we can
 * use its position to find its replacement.
 *
 *
 */

var root = null;
var startText = null;
var fallbackText = null;

function initialize(nativeEventTarget) {
  root = nativeEventTarget;
  startText = getText();
  return true;
}

function reset() {
  root = null;
  startText = null;
  fallbackText = null;
}

function getData() {
  if (fallbackText) {
    return fallbackText;
  }

  var start = void 0;
  var startValue = startText;
  var startLength = startValue.length;
  var end = void 0;
  var endValue = getText();
  var endLength = endValue.length;

  for (start = 0; start < startLength; start++) {
    if (startValue[start] !== endValue[start]) {
      break;
    }
  }

  var minEnd = startLength - start;
  for (end = 1; end <= minEnd; end++) {
    if (startValue[startLength - end] !== endValue[endLength - end]) {
      break;
    }
  }

  var sliceTail = end > 1 ? 1 - end : undefined;
  fallbackText = endValue.slice(start, sliceTail);
  return fallbackText;
}

function getText() {
  if ('value' in root) {
    return root.value;
  }
  return root.textContent;
}

/* eslint valid-typeof: 0 */

var EVENT_POOL_SIZE = 10;

/**
 * @interface Event
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var EventInterface = {
  type: null,
  target: null,
  // currentTarget is set when dispatching; no use in copying it here
  currentTarget: function () {
    return null;
  },
  eventPhase: null,
  bubbles: null,
  cancelable: null,
  timeStamp: function (event) {
    return event.timeStamp || Date.now();
  },
  defaultPrevented: null,
  isTrusted: null
};

function functionThatReturnsTrue() {
  return true;
}

function functionThatReturnsFalse() {
  return false;
}

/**
 * Synthetic events are dispatched by event plugins, typically in response to a
 * top-level event delegation handler.
 *
 * These systems should generally use pooling to reduce the frequency of garbage
 * collection. The system should check `isPersistent` to determine whether the
 * event should be released into the pool after being dispatched. Users that
 * need a persisted event should invoke `persist`.
 *
 * Synthetic events (and subclasses) implement the DOM Level 3 Events API by
 * normalizing browser quirks. Subclasses do not necessarily have to implement a
 * DOM interface; custom application-specific events can also subclass this.
 *
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {*} targetInst Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @param {DOMEventTarget} nativeEventTarget Target node.
 */
function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {
  {
    // these have a getter/setter for warnings
    delete this.nativeEvent;
    delete this.preventDefault;
    delete this.stopPropagation;
    delete this.isDefaultPrevented;
    delete this.isPropagationStopped;
  }

  this.dispatchConfig = dispatchConfig;
  this._targetInst = targetInst;
  this.nativeEvent = nativeEvent;

  var Interface = this.constructor.Interface;
  for (var propName in Interface) {
    if (!Interface.hasOwnProperty(propName)) {
      continue;
    }
    {
      delete this[propName]; // this has a getter/setter for warnings
    }
    var normalize = Interface[propName];
    if (normalize) {
      this[propName] = normalize(nativeEvent);
    } else {
      if (propName === 'target') {
        this.target = nativeEventTarget;
      } else {
        this[propName] = nativeEvent[propName];
      }
    }
  }

  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;
  if (defaultPrevented) {
    this.isDefaultPrevented = functionThatReturnsTrue;
  } else {
    this.isDefaultPrevented = functionThatReturnsFalse;
  }
  this.isPropagationStopped = functionThatReturnsFalse;
  return this;
}

_assign(SyntheticEvent.prototype, {
  preventDefault: function () {
    this.defaultPrevented = true;
    var event = this.nativeEvent;
    if (!event) {
      return;
    }

    if (event.preventDefault) {
      event.preventDefault();
    } else if (typeof event.returnValue !== 'unknown') {
      event.returnValue = false;
    }
    this.isDefaultPrevented = functionThatReturnsTrue;
  },

  stopPropagation: function () {
    var event = this.nativeEvent;
    if (!event) {
      return;
    }

    if (event.stopPropagation) {
      event.stopPropagation();
    } else if (typeof event.cancelBubble !== 'unknown') {
      // The ChangeEventPlugin registers a "propertychange" event for
      // IE. This event does not support bubbling or cancelling, and
      // any references to cancelBubble throw "Member not found".  A
      // typeof check of "unknown" circumvents this issue (and is also
      // IE specific).
      event.cancelBubble = true;
    }

    this.isPropagationStopped = functionThatReturnsTrue;
  },

  /**
   * We release all dispatched `SyntheticEvent`s after each event loop, adding
   * them back into the pool. This allows a way to hold onto a reference that
   * won't be added back into the pool.
   */
  persist: function () {
    this.isPersistent = functionThatReturnsTrue;
  },

  /**
   * Checks if this event should be released back into the pool.
   *
   * @return {boolean} True if this should not be released, false otherwise.
   */
  isPersistent: functionThatReturnsFalse,

  /**
   * `PooledClass` looks for `destructor` on each instance it releases.
   */
  destructor: function () {
    var Interface = this.constructor.Interface;
    for (var propName in Interface) {
      {
        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));
      }
    }
    this.dispatchConfig = null;
    this._targetInst = null;
    this.nativeEvent = null;
    this.isDefaultPrevented = functionThatReturnsFalse;
    this.isPropagationStopped = functionThatReturnsFalse;
    this._dispatchListeners = null;
    this._dispatchInstances = null;
    {
      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));
      Object.defineProperty(this, 'isDefaultPrevented', getPooledWarningPropertyDefinition('isDefaultPrevented', functionThatReturnsFalse));
      Object.defineProperty(this, 'isPropagationStopped', getPooledWarningPropertyDefinition('isPropagationStopped', functionThatReturnsFalse));
      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', function () {}));
      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', function () {}));
    }
  }
});

SyntheticEvent.Interface = EventInterface;

/**
 * Helper to reduce boilerplate when creating subclasses.
 */
SyntheticEvent.extend = function (Interface) {
  var Super = this;

  var E = function () {};
  E.prototype = Super.prototype;
  var prototype = new E();

  function Class() {
    return Super.apply(this, arguments);
  }
  _assign(prototype, Class.prototype);
  Class.prototype = prototype;
  Class.prototype.constructor = Class;

  Class.Interface = _assign({}, Super.Interface, Interface);
  Class.extend = Super.extend;
  addEventPoolingTo(Class);

  return Class;
};

addEventPoolingTo(SyntheticEvent);

/**
 * Helper to nullify syntheticEvent instance properties when destructing
 *
 * @param {String} propName
 * @param {?object} getVal
 * @return {object} defineProperty object
 */
function getPooledWarningPropertyDefinition(propName, getVal) {
  var isFunction = typeof getVal === 'function';
  return {
    configurable: true,
    set: set,
    get: get
  };

  function set(val) {
    var action = isFunction ? 'setting the method' : 'setting the property';
    warn(action, 'This is effectively a no-op');
    return val;
  }

  function get() {
    var action = isFunction ? 'accessing the method' : 'accessing the property';
    var result = isFunction ? 'This is a no-op function' : 'This is set to null';
    warn(action, result);
    return getVal;
  }

  function warn(action, result) {
    var warningCondition = false;
    !warningCondition ? warningWithoutStack$1(false, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
  }
}

function getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {
  var EventConstructor = this;
  if (EventConstructor.eventPool.length) {
    var instance = EventConstructor.eventPool.pop();
    EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);
    return instance;
  }
  return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);
}

function releasePooledEvent(event) {
  var EventConstructor = this;
  !(event instanceof EventConstructor) ? invariant(false, 'Trying to release an event instance into a pool of a different type.') : void 0;
  event.destructor();
  if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {
    EventConstructor.eventPool.push(event);
  }
}

function addEventPoolingTo(EventConstructor) {
  EventConstructor.eventPool = [];
  EventConstructor.getPooled = getPooledEvent;
  EventConstructor.release = releasePooledEvent;
}

/**
 * @interface Event
 * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents
 */
var SyntheticCompositionEvent = SyntheticEvent.extend({
  data: null
});

/**
 * @interface Event
 * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105
 *      /#events-inputevents
 */
var SyntheticInputEvent = SyntheticEvent.extend({
  data: null
});

var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
var START_KEYCODE = 229;

var canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;

var documentMode = null;
if (canUseDOM && 'documentMode' in document) {
  documentMode = document.documentMode;
}

// Webkit offers a very useful `textInput` event that can be used to
// directly represent `beforeInput`. The IE `textinput` event is not as
// useful, so we don't use it.
var canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode;

// In IE9+, we have access to composition events, but the data supplied
// by the native compositionend event may be incorrect. Japanese ideographic
// spaces, for instance (\u3000) are not recorded correctly.
var useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);

var SPACEBAR_CODE = 32;
var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);

// Events and their corresponding property names.
var eventTypes = {
  beforeInput: {
    phasedRegistrationNames: {
      bubbled: 'onBeforeInput',
      captured: 'onBeforeInputCapture'
    },
    dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]
  },
  compositionEnd: {
    phasedRegistrationNames: {
      bubbled: 'onCompositionEnd',
      captured: 'onCompositionEndCapture'
    },
    dependencies: [TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
  },
  compositionStart: {
    phasedRegistrationNames: {
      bubbled: 'onCompositionStart',
      captured: 'onCompositionStartCapture'
    },
    dependencies: [TOP_BLUR, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
  },
  compositionUpdate: {
    phasedRegistrationNames: {
      bubbled: 'onCompositionUpdate',
      captured: 'onCompositionUpdateCapture'
    },
    dependencies: [TOP_BLUR, TOP_COMPOSITION_UPDATE, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
  }
};

// Track whether we've ever handled a keypress on the space key.
var hasSpaceKeypress = false;

/**
 * Return whether a native keypress event is assumed to be a command.
 * This is required because Firefox fires `keypress` events for key commands
 * (cut, copy, select-all, etc.) even though no character is inserted.
 */
function isKeypressCommand(nativeEvent) {
  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
  // ctrlKey && altKey is equivalent to AltGr, and is not a command.
  !(nativeEvent.ctrlKey && nativeEvent.altKey);
}

/**
 * Translate native top level events into event types.
 *
 * @param {string} topLevelType
 * @return {object}
 */
function getCompositionEventType(topLevelType) {
  switch (topLevelType) {
    case TOP_COMPOSITION_START:
      return eventTypes.compositionStart;
    case TOP_COMPOSITION_END:
      return eventTypes.compositionEnd;
    case TOP_COMPOSITION_UPDATE:
      return eventTypes.compositionUpdate;
  }
}

/**
 * Does our fallback best-guess model think this event signifies that
 * composition has begun?
 *
 * @param {string} topLevelType
 * @param {object} nativeEvent
 * @return {boolean}
 */
function isFallbackCompositionStart(topLevelType, nativeEvent) {
  return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;
}

/**
 * Does our fallback mode think that this event is the end of composition?
 *
 * @param {string} topLevelType
 * @param {object} nativeEvent
 * @return {boolean}
 */
function isFallbackCompositionEnd(topLevelType, nativeEvent) {
  switch (topLevelType) {
    case TOP_KEY_UP:
      // Command keys insert or clear IME input.
      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
    case TOP_KEY_DOWN:
      // Expect IME keyCode on each keydown. If we get any other
      // code we must have exited earlier.
      return nativeEvent.keyCode !== START_KEYCODE;
    case TOP_KEY_PRESS:
    case TOP_MOUSE_DOWN:
    case TOP_BLUR:
      // Events are not possible without cancelling IME.
      return true;
    default:
      return false;
  }
}

/**
 * Google Input Tools provides composition data via a CustomEvent,
 * with the `data` property populated in the `detail` object. If this
 * is available on the event object, use it. If not, this is a plain
 * composition event and we have nothing special to extract.
 *
 * @param {object} nativeEvent
 * @return {?string}
 */
function getDataFromCustomEvent(nativeEvent) {
  var detail = nativeEvent.detail;
  if (typeof detail === 'object' && 'data' in detail) {
    return detail.data;
  }
  return null;
}

/**
 * Check if a composition event was triggered by Korean IME.
 * Our fallback mode does not work well with IE's Korean IME,
 * so just use native composition events when Korean IME is used.
 * Although CompositionEvent.locale property is deprecated,
 * it is available in IE, where our fallback mode is enabled.
 *
 * @param {object} nativeEvent
 * @return {boolean}
 */
function isUsingKoreanIME(nativeEvent) {
  return nativeEvent.locale === 'ko';
}

// Track the current IME composition status, if any.
var isComposing = false;

/**
 * @return {?object} A SyntheticCompositionEvent.
 */
function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
  var eventType = void 0;
  var fallbackData = void 0;

  if (canUseCompositionEvent) {
    eventType = getCompositionEventType(topLevelType);
  } else if (!isComposing) {
    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {
      eventType = eventTypes.compositionStart;
    }
  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {
    eventType = eventTypes.compositionEnd;
  }

  if (!eventType) {
    return null;
  }

  if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {
    // The current composition is stored statically and must not be
    // overwritten while composition continues.
    if (!isComposing && eventType === eventTypes.compositionStart) {
      isComposing = initialize(nativeEventTarget);
    } else if (eventType === eventTypes.compositionEnd) {
      if (isComposing) {
        fallbackData = getData();
      }
    }
  }

  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);

  if (fallbackData) {
    // Inject data generated from fallback path into the synthetic event.
    // This matches the property of native CompositionEventInterface.
    event.data = fallbackData;
  } else {
    var customData = getDataFromCustomEvent(nativeEvent);
    if (customData !== null) {
      event.data = customData;
    }
  }

  accumulateTwoPhaseDispatches(event);
  return event;
}

/**
 * @param {TopLevelType} topLevelType Number from `TopLevelType`.
 * @param {object} nativeEvent Native browser event.
 * @return {?string} The string corresponding to this `beforeInput` event.
 */
function getNativeBeforeInputChars(topLevelType, nativeEvent) {
  switch (topLevelType) {
    case TOP_COMPOSITION_END:
      return getDataFromCustomEvent(nativeEvent);
    case TOP_KEY_PRESS:
      /**
       * If native `textInput` events are available, our goal is to make
       * use of them. However, there is a special case: the spacebar key.
       * In Webkit, preventing default on a spacebar `textInput` event
       * cancels character insertion, but it *also* causes the browser
       * to fall back to its default spacebar behavior of scrolling the
       * page.
       *
       * Tracking at:
       * https://code.google.com/p/chromium/issues/detail?id=355103
       *
       * To avoid this issue, use the keypress event as if no `textInput`
       * event is available.
       */
      var which = nativeEvent.which;
      if (which !== SPACEBAR_CODE) {
        return null;
      }

      hasSpaceKeypress = true;
      return SPACEBAR_CHAR;

    case TOP_TEXT_INPUT:
      // Record the characters to be added to the DOM.
      var chars = nativeEvent.data;

      // If it's a spacebar character, assume that we have already handled
      // it at the keypress level and bail immediately. Android Chrome
      // doesn't give us keycodes, so we need to ignore it.
      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
        return null;
      }

      return chars;

    default:
      // For other native event types, do nothing.
      return null;
  }
}

/**
 * For browsers that do not provide the `textInput` event, extract the
 * appropriate string to use for SyntheticInputEvent.
 *
 * @param {number} topLevelType Number from `TopLevelEventTypes`.
 * @param {object} nativeEvent Native browser event.
 * @return {?string} The fallback string for this `beforeInput` event.
 */
function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
  // If we are currently composing (IME) and using a fallback to do so,
  // try to extract the composed characters from the fallback object.
  // If composition event is available, we extract a string only at
  // compositionevent, otherwise extract it at fallback events.
  if (isComposing) {
    if (topLevelType === TOP_COMPOSITION_END || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {
      var chars = getData();
      reset();
      isComposing = false;
      return chars;
    }
    return null;
  }

  switch (topLevelType) {
    case TOP_PASTE:
      // If a paste event occurs after a keypress, throw out the input
      // chars. Paste events should not lead to BeforeInput events.
      return null;
    case TOP_KEY_PRESS:
      /**
       * As of v27, Firefox may fire keypress events even when no character
       * will be inserted. A few possibilities:
       *
       * - `which` is `0`. Arrow keys, Esc key, etc.
       *
       * - `which` is the pressed key code, but no char is available.
       *   Ex: 'AltGr + d` in Polish. There is no modified character for
       *   this key combination and no character is inserted into the
       *   document, but FF fires the keypress for char code `100` anyway.
       *   No `input` event will occur.
       *
       * - `which` is the pressed key code, but a command combination is
       *   being used. Ex: `Cmd+C`. No character is inserted, and no
       *   `input` event will occur.
       */
      if (!isKeypressCommand(nativeEvent)) {
        // IE fires the `keypress` event when a user types an emoji via
        // Touch keyboard of Windows.  In such a case, the `char` property
        // holds an emoji character like `\uD83D\uDE0A`.  Because its length
        // is 2, the property `which` does not represent an emoji correctly.
        // In such a case, we directly return the `char` property instead of
        // using `which`.
        if (nativeEvent.char && nativeEvent.char.length > 1) {
          return nativeEvent.char;
        } else if (nativeEvent.which) {
          return String.fromCharCode(nativeEvent.which);
        }
      }
      return null;
    case TOP_COMPOSITION_END:
      return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;
    default:
      return null;
  }
}

/**
 * Extract a SyntheticInputEvent for `beforeInput`, based on either native
 * `textInput` or fallback behavior.
 *
 * @return {?object} A SyntheticInputEvent.
 */
function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
  var chars = void 0;

  if (canUseTextInputEvent) {
    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
  } else {
    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
  }

  // If no characters are being inserted, no BeforeInput event should
  // be fired.
  if (!chars) {
    return null;
  }

  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);

  event.data = chars;
  accumulateTwoPhaseDispatches(event);
  return event;
}

/**
 * Create an `onBeforeInput` event to match
 * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
 *
 * This event plugin is based on the native `textInput` event
 * available in Chrome, Safari, Opera, and IE. This event fires after
 * `onKeyPress` and `onCompositionEnd`, but before `onInput`.
 *
 * `beforeInput` is spec'd but not implemented in any browsers, and
 * the `input` event does not provide any useful information about what has
 * actually been added, contrary to the spec. Thus, `textInput` is the best
 * available event to identify the characters that have actually been inserted
 * into the target node.
 *
 * This plugin is also responsible for emitting `composition` events, thus
 * allowing us to share composition fallback code for both `beforeInput` and
 * `composition` event types.
 */
var BeforeInputEventPlugin = {
  eventTypes: eventTypes,

  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
    var composition = extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);

    var beforeInput = extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);

    if (composition === null) {
      return beforeInput;
    }

    if (beforeInput === null) {
      return composition;
    }

    return [composition, beforeInput];
  }
};

// Use to restore controlled state after a change event has fired.

var restoreImpl = null;
var restoreTarget = null;
var restoreQueue = null;

function restoreStateOfTarget(target) {
  // We perform this translation at the end of the event loop so that we
  // always receive the correct fiber here
  var internalInstance = getInstanceFromNode(target);
  if (!internalInstance) {
    // Unmounted
    return;
  }
  !(typeof restoreImpl === 'function') ? invariant(false, 'setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  var props = getFiberCurrentPropsFromNode(internalInstance.stateNode);
  restoreImpl(internalInstance.stateNode, internalInstance.type, props);
}

function setRestoreImplementation(impl) {
  restoreImpl = impl;
}

function enqueueStateRestore(target) {
  if (restoreTarget) {
    if (restoreQueue) {
      restoreQueue.push(target);
    } else {
      restoreQueue = [target];
    }
  } else {
    restoreTarget = target;
  }
}

function needsStateRestore() {
  return restoreTarget !== null || restoreQueue !== null;
}

function restoreStateIfNeeded() {
  if (!restoreTarget) {
    return;
  }
  var target = restoreTarget;
  var queuedTargets = restoreQueue;
  restoreTarget = null;
  restoreQueue = null;

  restoreStateOfTarget(target);
  if (queuedTargets) {
    for (var i = 0; i < queuedTargets.length; i++) {
      restoreStateOfTarget(queuedTargets[i]);
    }
  }
}

// Used as a way to call batchedUpdates when we don't have a reference to
// the renderer. Such as when we're dispatching events or if third party
// libraries need to call batchedUpdates. Eventually, this API will go away when
// everything is batched by default. We'll then have a similar API to opt-out of
// scheduled work and instead do synchronous work.

// Defaults
var _batchedUpdatesImpl = function (fn, bookkeeping) {
  return fn(bookkeeping);
};
var _interactiveUpdatesImpl = function (fn, a, b) {
  return fn(a, b);
};
var _flushInteractiveUpdatesImpl = function () {};

var isBatching = false;
function batchedUpdates(fn, bookkeeping) {
  if (isBatching) {
    // If we are currently inside another batch, we need to wait until it
    // fully completes before restoring state.
    return fn(bookkeeping);
  }
  isBatching = true;
  try {
    return _batchedUpdatesImpl(fn, bookkeeping);
  } finally {
    // Here we wait until all updates have propagated, which is important
    // when using controlled components within layers:
    // https://github.com/facebook/react/issues/1698
    // Then we restore state of any controlled component.
    isBatching = false;
    var controlledComponentsHavePendingUpdates = needsStateRestore();
    if (controlledComponentsHavePendingUpdates) {
      // If a controlled event was fired, we may need to restore the state of
      // the DOM node back to the controlled value. This is necessary when React
      // bails out of the update without touching the DOM.
      _flushInteractiveUpdatesImpl();
      restoreStateIfNeeded();
    }
  }
}

function interactiveUpdates(fn, a, b) {
  return _interactiveUpdatesImpl(fn, a, b);
}



function setBatchingImplementation(batchedUpdatesImpl, interactiveUpdatesImpl, flushInteractiveUpdatesImpl) {
  _batchedUpdatesImpl = batchedUpdatesImpl;
  _interactiveUpdatesImpl = interactiveUpdatesImpl;
  _flushInteractiveUpdatesImpl = flushInteractiveUpdatesImpl;
}

/**
 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
 */
var supportedInputTypes = {
  color: true,
  date: true,
  datetime: true,
  'datetime-local': true,
  email: true,
  month: true,
  number: true,
  password: true,
  range: true,
  search: true,
  tel: true,
  text: true,
  time: true,
  url: true,
  week: true
};

function isTextInputElement(elem) {
  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();

  if (nodeName === 'input') {
    return !!supportedInputTypes[elem.type];
  }

  if (nodeName === 'textarea') {
    return true;
  }

  return false;
}

/**
 * HTML nodeType values that represent the type of the node
 */

var ELEMENT_NODE = 1;
var TEXT_NODE = 3;
var COMMENT_NODE = 8;
var DOCUMENT_NODE = 9;
var DOCUMENT_FRAGMENT_NODE = 11;

/**
 * Gets the target node from a native browser event by accounting for
 * inconsistencies in browser DOM APIs.
 *
 * @param {object} nativeEvent Native browser event.
 * @return {DOMEventTarget} Target node.
 */
function getEventTarget(nativeEvent) {
  // Fallback to nativeEvent.srcElement for IE9
  // https://github.com/facebook/react/issues/12506
  var target = nativeEvent.target || nativeEvent.srcElement || window;

  // Normalize SVG <use> element events #4963
  if (target.correspondingUseElement) {
    target = target.correspondingUseElement;
  }

  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).
  // @see http://www.quirksmode.org/js/events_properties.html
  return target.nodeType === TEXT_NODE ? target.parentNode : target;
}

/**
 * Checks if an event is supported in the current execution environment.
 *
 * NOTE: This will not work correctly for non-generic events such as `change`,
 * `reset`, `load`, `error`, and `select`.
 *
 * Borrows from Modernizr.
 *
 * @param {string} eventNameSuffix Event name, e.g. "click".
 * @return {boolean} True if the event is supported.
 * @internal
 * @license Modernizr 3.0.0pre (Custom Build) | MIT
 */
function isEventSupported(eventNameSuffix) {
  if (!canUseDOM) {
    return false;
  }

  var eventName = 'on' + eventNameSuffix;
  var isSupported = eventName in document;

  if (!isSupported) {
    var element = document.createElement('div');
    element.setAttribute(eventName, 'return;');
    isSupported = typeof element[eventName] === 'function';
  }

  return isSupported;
}

function isCheckable(elem) {
  var type = elem.type;
  var nodeName = elem.nodeName;
  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
}

function getTracker(node) {
  return node._valueTracker;
}

function detachTracker(node) {
  node._valueTracker = null;
}

function getValueFromNode(node) {
  var value = '';
  if (!node) {
    return value;
  }

  if (isCheckable(node)) {
    value = node.checked ? 'true' : 'false';
  } else {
    value = node.value;
  }

  return value;
}

function trackValueOnNode(node) {
  var valueField = isCheckable(node) ? 'checked' : 'value';
  var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);

  var currentValue = '' + node[valueField];

  // if someone has already defined a value or Safari, then bail
  // and don't track value will cause over reporting of changes,
  // but it's better then a hard failure
  // (needed for certain tests that spyOn input values and Safari)
  if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
    return;
  }
  var get = descriptor.get,
      set = descriptor.set;

  Object.defineProperty(node, valueField, {
    configurable: true,
    get: function () {
      return get.call(this);
    },
    set: function (value) {
      currentValue = '' + value;
      set.call(this, value);
    }
  });
  // We could've passed this the first time
  // but it triggers a bug in IE11 and Edge 14/15.
  // Calling defineProperty() again should be equivalent.
  // https://github.com/facebook/react/issues/11768
  Object.defineProperty(node, valueField, {
    enumerable: descriptor.enumerable
  });

  var tracker = {
    getValue: function () {
      return currentValue;
    },
    setValue: function (value) {
      currentValue = '' + value;
    },
    stopTracking: function () {
      detachTracker(node);
      delete node[valueField];
    }
  };
  return tracker;
}

function track(node) {
  if (getTracker(node)) {
    return;
  }

  // TODO: Once it's just Fiber we can move this to node._wrapperState
  node._valueTracker = trackValueOnNode(node);
}

function updateValueIfChanged(node) {
  if (!node) {
    return false;
  }

  var tracker = getTracker(node);
  // if there is no tracker at this point it's unlikely
  // that trying again will succeed
  if (!tracker) {
    return true;
  }

  var lastValue = tracker.getValue();
  var nextValue = getValueFromNode(node);
  if (nextValue !== lastValue) {
    tracker.setValue(nextValue);
    return true;
  }
  return false;
}

var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;

// Prevent newer renderers from RTE when used with older react package versions.
// Current owner and dispatcher used to share the same ref,
// but PR #14548 split them out to better support the react-debug-tools package.
if (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {
  ReactSharedInternals.ReactCurrentDispatcher = {
    current: null
  };
}

var BEFORE_SLASH_RE = /^(.*)[\\\/]/;

var describeComponentFrame = function (name, source, ownerName) {
  var sourceInfo = '';
  if (source) {
    var path = source.fileName;
    var fileName = path.replace(BEFORE_SLASH_RE, '');
    {
      // In DEV, include code for a common special case:
      // prefer "folder/index.js" instead of just "index.js".
      if (/^index\./.test(fileName)) {
        var match = path.match(BEFORE_SLASH_RE);
        if (match) {
          var pathBeforeSlash = match[1];
          if (pathBeforeSlash) {
            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
            fileName = folderName + '/' + fileName;
          }
        }
      }
    }
    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
  } else if (ownerName) {
    sourceInfo = ' (created by ' + ownerName + ')';
  }
  return '\n    in ' + (name || 'Unknown') + sourceInfo;
};

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;

var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;

var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;

var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';

function getIteratorFn(maybeIterable) {
  if (maybeIterable === null || typeof maybeIterable !== 'object') {
    return null;
  }
  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
  if (typeof maybeIterator === 'function') {
    return maybeIterator;
  }
  return null;
}

var Pending = 0;
var Resolved = 1;
var Rejected = 2;

function refineResolvedLazyComponent(lazyComponent) {
  return lazyComponent._status === Resolved ? lazyComponent._result : null;
}

function getWrappedName(outerType, innerType, wrapperName) {
  var functionName = innerType.displayName || innerType.name || '';
  return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);
}

function getComponentName(type) {
  if (type == null) {
    // Host root, text node or just invalid type.
    return null;
  }
  {
    if (typeof type.tag === 'number') {
      warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
    }
  }
  if (typeof type === 'function') {
    return type.displayName || type.name || null;
  }
  if (typeof type === 'string') {
    return type;
  }
  switch (type) {
    case REACT_CONCURRENT_MODE_TYPE:
      return 'ConcurrentMode';
    case REACT_FRAGMENT_TYPE:
      return 'Fragment';
    case REACT_PORTAL_TYPE:
      return 'Portal';
    case REACT_PROFILER_TYPE:
      return 'Profiler';
    case REACT_STRICT_MODE_TYPE:
      return 'StrictMode';
    case REACT_SUSPENSE_TYPE:
      return 'Suspense';
  }
  if (typeof type === 'object') {
    switch (type.$$typeof) {
      case REACT_CONTEXT_TYPE:
        return 'Context.Consumer';
      case REACT_PROVIDER_TYPE:
        return 'Context.Provider';
      case REACT_FORWARD_REF_TYPE:
        return getWrappedName(type, type.render, 'ForwardRef');
      case REACT_MEMO_TYPE:
        return getComponentName(type.type);
      case REACT_LAZY_TYPE:
        {
          var thenable = type;
          var resolvedThenable = refineResolvedLazyComponent(thenable);
          if (resolvedThenable) {
            return getComponentName(resolvedThenable);
          }
        }
    }
  }
  return null;
}

var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;

function describeFiber(fiber) {
  switch (fiber.tag) {
    case HostRoot:
    case HostPortal:
    case HostText:
    case Fragment:
    case ContextProvider:
    case ContextConsumer:
      return '';
    default:
      var owner = fiber._debugOwner;
      var source = fiber._debugSource;
      var name = getComponentName(fiber.type);
      var ownerName = null;
      if (owner) {
        ownerName = getComponentName(owner.type);
      }
      return describeComponentFrame(name, source, ownerName);
  }
}

function getStackByFiberInDevAndProd(workInProgress) {
  var info = '';
  var node = workInProgress;
  do {
    info += describeFiber(node);
    node = node.return;
  } while (node);
  return info;
}

var current = null;
var phase = null;

function getCurrentFiberOwnerNameInDevOrNull() {
  {
    if (current === null) {
      return null;
    }
    var owner = current._debugOwner;
    if (owner !== null && typeof owner !== 'undefined') {
      return getComponentName(owner.type);
    }
  }
  return null;
}

function getCurrentFiberStackInDev() {
  {
    if (current === null) {
      return '';
    }
    // Safe because if current fiber exists, we are reconciling,
    // and it is guaranteed to be the work-in-progress version.
    return getStackByFiberInDevAndProd(current);
  }
  return '';
}

function resetCurrentFiber() {
  {
    ReactDebugCurrentFrame.getCurrentStack = null;
    current = null;
    phase = null;
  }
}

function setCurrentFiber(fiber) {
  {
    ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;
    current = fiber;
    phase = null;
  }
}

function setCurrentPhase(lifeCyclePhase) {
  {
    phase = lifeCyclePhase;
  }
}

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warning = warningWithoutStack$1;

{
  warning = function (condition, format) {
    if (condition) {
      return;
    }
    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
    var stack = ReactDebugCurrentFrame.getStackAddendum();
    // eslint-disable-next-line react-internal/warning-and-invariant-args

    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }

    warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));
  };
}

var warning$1 = warning;

// A reserved attribute.
// It is handled by React separately and shouldn't be written to the DOM.
var RESERVED = 0;

// A simple string attribute.
// Attributes that aren't in the whitelist are presumed to have this type.
var STRING = 1;

// A string attribute that accepts booleans in React. In HTML, these are called
// "enumerated" attributes with "true" and "false" as possible values.
// When true, it should be set to a "true" string.
// When false, it should be set to a "false" string.
var BOOLEANISH_STRING = 2;

// A real boolean attribute.
// When true, it should be present (set either to an empty string or its name).
// When false, it should be omitted.
var BOOLEAN = 3;

// An attribute that can be used as a flag as well as with a value.
// When true, it should be present (set either to an empty string or its name).
// When false, it should be omitted.
// For any other value, should be present with that value.
var OVERLOADED_BOOLEAN = 4;

// An attribute that must be numeric or parse as a numeric.
// When falsy, it should be removed.
var NUMERIC = 5;

// An attribute that must be positive numeric or parse as a positive numeric.
// When falsy, it should be removed.
var POSITIVE_NUMERIC = 6;

/* eslint-disable max-len */
var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
/* eslint-enable max-len */
var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040';


var ROOT_ATTRIBUTE_NAME = 'data-reactroot';
var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');

var hasOwnProperty = Object.prototype.hasOwnProperty;
var illegalAttributeNameCache = {};
var validatedAttributeNameCache = {};

function isAttributeNameSafe(attributeName) {
  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {
    return true;
  }
  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {
    return false;
  }
  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
    validatedAttributeNameCache[attributeName] = true;
    return true;
  }
  illegalAttributeNameCache[attributeName] = true;
  {
    warning$1(false, 'Invalid attribute name: `%s`', attributeName);
  }
  return false;
}

function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {
  if (propertyInfo !== null) {
    return propertyInfo.type === RESERVED;
  }
  if (isCustomComponentTag) {
    return false;
  }
  if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {
    return true;
  }
  return false;
}

function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {
  if (propertyInfo !== null && propertyInfo.type === RESERVED) {
    return false;
  }
  switch (typeof value) {
    case 'function':
    // $FlowIssue symbol is perfectly valid here
    case 'symbol':
      // eslint-disable-line
      return true;
    case 'boolean':
      {
        if (isCustomComponentTag) {
          return false;
        }
        if (propertyInfo !== null) {
          return !propertyInfo.acceptsBooleans;
        } else {
          var prefix = name.toLowerCase().slice(0, 5);
          return prefix !== 'data-' && prefix !== 'aria-';
        }
      }
    default:
      return false;
  }
}

function shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {
  if (value === null || typeof value === 'undefined') {
    return true;
  }
  if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {
    return true;
  }
  if (isCustomComponentTag) {
    return false;
  }
  if (propertyInfo !== null) {
    switch (propertyInfo.type) {
      case BOOLEAN:
        return !value;
      case OVERLOADED_BOOLEAN:
        return value === false;
      case NUMERIC:
        return isNaN(value);
      case POSITIVE_NUMERIC:
        return isNaN(value) || value < 1;
    }
  }
  return false;
}

function getPropertyInfo(name) {
  return properties.hasOwnProperty(name) ? properties[name] : null;
}

function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {
  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;
  this.attributeName = attributeName;
  this.attributeNamespace = attributeNamespace;
  this.mustUseProperty = mustUseProperty;
  this.propertyName = name;
  this.type = type;
}

// When adding attributes to this list, be sure to also add them to
// the `possibleStandardNames` module to ensure casing and incorrect
// name warnings.
var properties = {};

// These props are reserved by React. They shouldn't be written to the DOM.
['children', 'dangerouslySetInnerHTML',
// TODO: This prevents the assignment of defaultValue to regular
// elements (not just inputs). Now that ReactDOMInput assigns to the
// defaultValue property -- do we need this?
'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty
  name, // attributeName
  null);
} // attributeNamespace
);

// A few React string attributes have a different name.
// This is a mapping from React prop names to the attribute names.
[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {
  var name = _ref[0],
      attributeName = _ref[1];

  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
  attributeName, // attributeName
  null);
} // attributeNamespace
);

// These are "enumerated" HTML attributes that accept "true" and "false".
// In React, we let users pass `true` and `false` even though technically
// these aren't boolean attributes (they are coerced to strings).
['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty
  name.toLowerCase(), // attributeName
  null);
} // attributeNamespace
);

// These are "enumerated" SVG attributes that accept "true" and "false".
// In React, we let users pass `true` and `false` even though technically
// these aren't boolean attributes (they are coerced to strings).
// Since these are SVG attributes, their attribute names are case-sensitive.
['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty
  name, // attributeName
  null);
} // attributeNamespace
);

// These are HTML boolean attributes.
['allowFullScreen', 'async',
// Note: there is a special case that prevents it from being written to the DOM
// on the client side because the browsers are inconsistent. Instead we call focus().
'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',
// Microdata
'itemScope'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty
  name.toLowerCase(), // attributeName
  null);
} // attributeNamespace
);

// These are the few React props that we set as DOM properties
// rather than attributes. These are all booleans.
['checked',
// Note: `option.selected` is not updated if `select.multiple` is
// disabled with `removeAttribute`. We have special logic for handling this.
'multiple', 'muted', 'selected'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty
  name, // attributeName
  null);
} // attributeNamespace
);

// These are HTML attributes that are "overloaded booleans": they behave like
// booleans, but can also accept a string value.
['capture', 'download'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty
  name, // attributeName
  null);
} // attributeNamespace
);

// These are HTML attributes that must be positive numbers.
['cols', 'rows', 'size', 'span'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty
  name, // attributeName
  null);
} // attributeNamespace
);

// These are HTML attributes that must be numbers.
['rowSpan', 'start'].forEach(function (name) {
  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty
  name.toLowerCase(), // attributeName
  null);
} // attributeNamespace
);

var CAMELIZE = /[\-\:]([a-z])/g;
var capitalize = function (token) {
  return token[1].toUpperCase();
};

// This is a list of all SVG attributes that need special casing, namespacing,
// or boolean value assignment. Regular attributes that just accept strings
// and have the same names are omitted, just like in the HTML whitelist.
// Some of these attributes can be hard to find. This list was created by
// scrapping the MDN documentation.
['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {
  var name = attributeName.replace(CAMELIZE, capitalize);
  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
  attributeName, null);
} // attributeNamespace
);

// String SVG attributes with the xlink namespace.
['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {
  var name = attributeName.replace(CAMELIZE, capitalize);
  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
  attributeName, 'http://www.w3.org/1999/xlink');
});

// String SVG attributes with the xml namespace.
['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {
  var name = attributeName.replace(CAMELIZE, capitalize);
  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
  attributeName, 'http://www.w3.org/XML/1998/namespace');
});

// These attribute exists both in HTML and SVG.
// The attribute name is case-sensitive in SVG so we can't just use
// the React name like we do for attributes that exist only in HTML.
['tabIndex', 'crossOrigin'].forEach(function (attributeName) {
  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty
  attributeName.toLowerCase(), // attributeName
  null);
} // attributeNamespace
);

/**
 * Get the value for a property on a node. Only used in DEV for SSR validation.
 * The "expected" argument is used as a hint of what the expected value is.
 * Some properties have multiple equivalent values.
 */
function getValueForProperty(node, name, expected, propertyInfo) {
  {
    if (propertyInfo.mustUseProperty) {
      var propertyName = propertyInfo.propertyName;

      return node[propertyName];
    } else {
      var attributeName = propertyInfo.attributeName;

      var stringValue = null;

      if (propertyInfo.type === OVERLOADED_BOOLEAN) {
        if (node.hasAttribute(attributeName)) {
          var value = node.getAttribute(attributeName);
          if (value === '') {
            return true;
          }
          if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
            return value;
          }
          if (value === '' + expected) {
            return expected;
          }
          return value;
        }
      } else if (node.hasAttribute(attributeName)) {
        if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
          // We had an attribute but shouldn't have had one, so read it
          // for the error message.
          return node.getAttribute(attributeName);
        }
        if (propertyInfo.type === BOOLEAN) {
          // If this was a boolean, it doesn't matter what the value is
          // the fact that we have it is the same as the expected.
          return expected;
        }
        // Even if this property uses a namespace we use getAttribute
        // because we assume its namespaced name is the same as our config.
        // To use getAttributeNS we need the local name which we don't have
        // in our config atm.
        stringValue = node.getAttribute(attributeName);
      }

      if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
        return stringValue === null ? expected : stringValue;
      } else if (stringValue === '' + expected) {
        return expected;
      } else {
        return stringValue;
      }
    }
  }
}

/**
 * Get the value for a attribute on a node. Only used in DEV for SSR validation.
 * The third argument is used as a hint of what the expected value is. Some
 * attributes have multiple equivalent values.
 */
function getValueForAttribute(node, name, expected) {
  {
    if (!isAttributeNameSafe(name)) {
      return;
    }
    if (!node.hasAttribute(name)) {
      return expected === undefined ? undefined : null;
    }
    var value = node.getAttribute(name);
    if (value === '' + expected) {
      return expected;
    }
    return value;
  }
}

/**
 * Sets the value for a property on a node.
 *
 * @param {DOMElement} node
 * @param {string} name
 * @param {*} value
 */
function setValueForProperty(node, name, value, isCustomComponentTag) {
  var propertyInfo = getPropertyInfo(name);
  if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {
    return;
  }
  if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {
    value = null;
  }
  // If the prop isn't in the special list, treat it as a simple attribute.
  if (isCustomComponentTag || propertyInfo === null) {
    if (isAttributeNameSafe(name)) {
      var _attributeName = name;
      if (value === null) {
        node.removeAttribute(_attributeName);
      } else {
        node.setAttribute(_attributeName, '' + value);
      }
    }
    return;
  }
  var mustUseProperty = propertyInfo.mustUseProperty;

  if (mustUseProperty) {
    var propertyName = propertyInfo.propertyName;

    if (value === null) {
      var type = propertyInfo.type;

      node[propertyName] = type === BOOLEAN ? false : '';
    } else {
      // Contrary to `setAttribute`, object properties are properly
      // `toString`ed by IE8/9.
      node[propertyName] = value;
    }
    return;
  }
  // The rest are treated as attributes with special cases.
  var attributeName = propertyInfo.attributeName,
      attributeNamespace = propertyInfo.attributeNamespace;

  if (value === null) {
    node.removeAttribute(attributeName);
  } else {
    var _type = propertyInfo.type;

    var attributeValue = void 0;
    if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {
      attributeValue = '';
    } else {
      // `setAttribute` with objects becomes only `[object]` in IE8/9,
      // ('' + value) makes it output the correct toString()-value.
      attributeValue = '' + value;
    }
    if (attributeNamespace) {
      node.setAttributeNS(attributeNamespace, attributeName, attributeValue);
    } else {
      node.setAttribute(attributeName, attributeValue);
    }
  }
}

// Flow does not allow string concatenation of most non-string types. To work
// around this limitation, we use an opaque type that can only be obtained by
// passing the value through getToStringValue first.
function toString(value) {
  return '' + value;
}

function getToStringValue(value) {
  switch (typeof value) {
    case 'boolean':
    case 'number':
    case 'object':
    case 'string':
    case 'undefined':
      return value;
    default:
      // function, symbol are assigned as empty strings
      return '';
  }
}

var ReactDebugCurrentFrame$1 = null;

var ReactControlledValuePropTypes = {
  checkPropTypes: null
};

{
  ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;

  var hasReadOnlyValue = {
    button: true,
    checkbox: true,
    image: true,
    hidden: true,
    radio: true,
    reset: true,
    submit: true
  };

  var propTypes = {
    value: function (props, propName, componentName) {
      if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {
        return null;
      }
      return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
    },
    checked: function (props, propName, componentName) {
      if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {
        return null;
      }
      return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
    }
  };

  /**
   * Provide a linked `value` attribute for controlled forms. You should not use
   * this outside of the ReactDOM controlled form components.
   */
  ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {
    checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$1.getStackAddendum);
  };
}

var enableUserTimingAPI = true;

// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:
var debugRenderPhaseSideEffects = false;

// In some cases, StrictMode should also double-render lifecycles.
// This can be confusing for tests though,
// And it can be bad for performance in production.
// This feature flag can be used to control the behavior:
var debugRenderPhaseSideEffectsForStrictMode = true;

// To preserve the "Pause on caught exceptions" behavior of the debugger, we
// replay the begin phase of a failed component inside invokeGuardedCallback.
var replayFailedUnitOfWorkWithInvokeGuardedCallback = true;

// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:
var warnAboutDeprecatedLifecycles = false;

// Gather advanced timing metrics for Profiler subtrees.
var enableProfilerTimer = true;

// Trace which interactions trigger each commit.
var enableSchedulerTracing = true;

// Only used in www builds.
var enableSuspenseServerRenderer = false; // TODO: true? Here it might just be false.

// Only used in www builds.


// Only used in www builds.


// React Fire: prevent the value and checked attributes from syncing
// with their related DOM properties
var disableInputAttributeSyncing = false;

// These APIs will no longer be "unstable" in the upcoming 16.7 release,
// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.
var enableStableConcurrentModeAPIs = false;

var warnAboutShorthandPropertyCollision = false;

// TODO: direct imports like some-package/src/* are bad. Fix me.
var didWarnValueDefaultValue = false;
var didWarnCheckedDefaultChecked = false;
var didWarnControlledToUncontrolled = false;
var didWarnUncontrolledToControlled = false;

function isControlled(props) {
  var usesChecked = props.type === 'checkbox' || props.type === 'radio';
  return usesChecked ? props.checked != null : props.value != null;
}

/**
 * Implements an <input> host component that allows setting these optional
 * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.
 *
 * If `checked` or `value` are not supplied (or null/undefined), user actions
 * that affect the checked state or value will trigger updates to the element.
 *
 * If they are supplied (and not null/undefined), the rendered element will not
 * trigger updates to the element. Instead, the props must change in order for
 * the rendered element to be updated.
 *
 * The rendered element will be initialized as unchecked (or `defaultChecked`)
 * with an empty value (or `defaultValue`).
 *
 * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html
 */

function getHostProps(element, props) {
  var node = element;
  var checked = props.checked;

  var hostProps = _assign({}, props, {
    defaultChecked: undefined,
    defaultValue: undefined,
    value: undefined,
    checked: checked != null ? checked : node._wrapperState.initialChecked
  });

  return hostProps;
}

function initWrapperState(element, props) {
  {
    ReactControlledValuePropTypes.checkPropTypes('input', props);

    if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {
      warning$1(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);
      didWarnCheckedDefaultChecked = true;
    }
    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {
      warning$1(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);
      didWarnValueDefaultValue = true;
    }
  }

  var node = element;
  var defaultValue = props.defaultValue == null ? '' : props.defaultValue;

  node._wrapperState = {
    initialChecked: props.checked != null ? props.checked : props.defaultChecked,
    initialValue: getToStringValue(props.value != null ? props.value : defaultValue),
    controlled: isControlled(props)
  };
}

function updateChecked(element, props) {
  var node = element;
  var checked = props.checked;
  if (checked != null) {
    setValueForProperty(node, 'checked', checked, false);
  }
}

function updateWrapper(element, props) {
  var node = element;
  {
    var _controlled = isControlled(props);

    if (!node._wrapperState.controlled && _controlled && !didWarnUncontrolledToControlled) {
      warning$1(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);
      didWarnUncontrolledToControlled = true;
    }
    if (node._wrapperState.controlled && !_controlled && !didWarnControlledToUncontrolled) {
      warning$1(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);
      didWarnControlledToUncontrolled = true;
    }
  }

  updateChecked(element, props);

  var value = getToStringValue(props.value);
  var type = props.type;

  if (value != null) {
    if (type === 'number') {
      if (value === 0 && node.value === '' ||
      // We explicitly want to coerce to number here if possible.
      // eslint-disable-next-line
      node.value != value) {
        node.value = toString(value);
      }
    } else if (node.value !== toString(value)) {
      node.value = toString(value);
    }
  } else if (type === 'submit' || type === 'reset') {
    // Submit/reset inputs need the attribute removed completely to avoid
    // blank-text buttons.
    node.removeAttribute('value');
    return;
  }

  if (disableInputAttributeSyncing) {
    // When not syncing the value attribute, React only assigns a new value
    // whenever the defaultValue React prop has changed. When not present,
    // React does nothing
    if (props.hasOwnProperty('defaultValue')) {
      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));
    }
  } else {
    // When syncing the value attribute, the value comes from a cascade of
    // properties:
    //  1. The value React property
    //  2. The defaultValue React property
    //  3. Otherwise there should be no change
    if (props.hasOwnProperty('value')) {
      setDefaultValue(node, props.type, value);
    } else if (props.hasOwnProperty('defaultValue')) {
      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));
    }
  }

  if (disableInputAttributeSyncing) {
    // When not syncing the checked attribute, the attribute is directly
    // controllable from the defaultValue React property. It needs to be
    // updated as new props come in.
    if (props.defaultChecked == null) {
      node.removeAttribute('checked');
    } else {
      node.defaultChecked = !!props.defaultChecked;
    }
  } else {
    // When syncing the checked attribute, it only changes when it needs
    // to be removed, such as transitioning from a checkbox into a text input
    if (props.checked == null && props.defaultChecked != null) {
      node.defaultChecked = !!props.defaultChecked;
    }
  }
}

function postMountWrapper(element, props, isHydrating) {
  var node = element;

  // Do not assign value if it is already set. This prevents user text input
  // from being lost during SSR hydration.
  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {
    var type = props.type;
    var isButton = type === 'submit' || type === 'reset';

    // Avoid setting value attribute on submit/reset inputs as it overrides the
    // default value provided by the browser. See: #12872
    if (isButton && (props.value === undefined || props.value === null)) {
      return;
    }

    var _initialValue = toString(node._wrapperState.initialValue);

    // Do not assign value if it is already set. This prevents user text input
    // from being lost during SSR hydration.
    if (!isHydrating) {
      if (disableInputAttributeSyncing) {
        var value = getToStringValue(props.value);

        // When not syncing the value attribute, the value property points
        // directly to the React prop. Only assign it if it exists.
        if (value != null) {
          // Always assign on buttons so that it is possible to assign an
          // empty string to clear button text.
          //
          // Otherwise, do not re-assign the value property if is empty. This
          // potentially avoids a DOM write and prevents Firefox (~60.0.1) from
          // prematurely marking required inputs as invalid. Equality is compared
          // to the current value in case the browser provided value is not an
          // empty string.
          if (isButton || value !== node.value) {
            node.value = toString(value);
          }
        }
      } else {
        // When syncing the value attribute, the value property should use
        // the wrapperState._initialValue property. This uses:
        //
        //   1. The value React property when present
        //   2. The defaultValue React property when present
        //   3. An empty string
        if (_initialValue !== node.value) {
          node.value = _initialValue;
        }
      }
    }

    if (disableInputAttributeSyncing) {
      // When not syncing the value attribute, assign the value attribute
      // directly from the defaultValue React property (when present)
      var defaultValue = getToStringValue(props.defaultValue);
      if (defaultValue != null) {
        node.defaultValue = toString(defaultValue);
      }
    } else {
      // Otherwise, the value attribute is synchronized to the property,
      // so we assign defaultValue to the same thing as the value property
      // assignment step above.
      node.defaultValue = _initialValue;
    }
  }

  // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug
  // this is needed to work around a chrome bug where setting defaultChecked
  // will sometimes influence the value of checked (even after detachment).
  // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416
  // We need to temporarily unset name to avoid disrupting radio button groups.
  var name = node.name;
  if (name !== '') {
    node.name = '';
  }

  if (disableInputAttributeSyncing) {
    // When not syncing the checked attribute, the checked property
    // never gets assigned. It must be manually set. We don't want
    // to do this when hydrating so that existing user input isn't
    // modified
    if (!isHydrating) {
      updateChecked(element, props);
    }

    // Only assign the checked attribute if it is defined. This saves
    // a DOM write when controlling the checked attribute isn't needed
    // (text inputs, submit/reset)
    if (props.hasOwnProperty('defaultChecked')) {
      node.defaultChecked = !node.defaultChecked;
      node.defaultChecked = !!props.defaultChecked;
    }
  } else {
    // When syncing the checked attribute, both the checked property and
    // attribute are assigned at the same time using defaultChecked. This uses:
    //
    //   1. The checked React property when present
    //   2. The defaultChecked React property when present
    //   3. Otherwise, false
    node.defaultChecked = !node.defaultChecked;
    node.defaultChecked = !!node._wrapperState.initialChecked;
  }

  if (name !== '') {
    node.name = name;
  }
}

function restoreControlledState(element, props) {
  var node = element;
  updateWrapper(node, props);
  updateNamedCousins(node, props);
}

function updateNamedCousins(rootNode, props) {
  var name = props.name;
  if (props.type === 'radio' && name != null) {
    var queryRoot = rootNode;

    while (queryRoot.parentNode) {
      queryRoot = queryRoot.parentNode;
    }

    // If `rootNode.form` was non-null, then we could try `form.elements`,
    // but that sometimes behaves strangely in IE8. We could also try using
    // `form.getElementsByName`, but that will only return direct children
    // and won't include inputs that use the HTML5 `form=` attribute. Since
    // the input might not even be in a form. It might not even be in the
    // document. Let's just use the local `querySelectorAll` to ensure we don't
    // miss anything.
    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]');

    for (var i = 0; i < group.length; i++) {
      var otherNode = group[i];
      if (otherNode === rootNode || otherNode.form !== rootNode.form) {
        continue;
      }
      // This will throw if radio buttons rendered by different copies of React
      // and the same name are rendered into the same form (same as #1939).
      // That's probably okay; we don't support it just as we don't support
      // mixing React radio buttons with non-React ones.
      var otherProps = getFiberCurrentPropsFromNode$1(otherNode);
      !otherProps ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : void 0;

      // We need update the tracked value on the named cousin since the value
      // was changed but the input saw no event or value set
      updateValueIfChanged(otherNode);

      // If this is a controlled radio button group, forcing the input that
      // was previously checked to update will cause it to be come re-checked
      // as appropriate.
      updateWrapper(otherNode, otherProps);
    }
  }
}

// In Chrome, assigning defaultValue to certain input types triggers input validation.
// For number inputs, the display value loses trailing decimal points. For email inputs,
// Chrome raises "The specified value <x> is not a valid email address".
//
// Here we check to see if the defaultValue has actually changed, avoiding these problems
// when the user is inputting text
//
// https://github.com/facebook/react/issues/7253
function setDefaultValue(node, type, value) {
  if (
  // Focused number inputs synchronize on blur. See ChangeEventPlugin.js
  type !== 'number' || node.ownerDocument.activeElement !== node) {
    if (value == null) {
      node.defaultValue = toString(node._wrapperState.initialValue);
    } else if (node.defaultValue !== toString(value)) {
      node.defaultValue = toString(value);
    }
  }
}

var eventTypes$1 = {
  change: {
    phasedRegistrationNames: {
      bubbled: 'onChange',
      captured: 'onChangeCapture'
    },
    dependencies: [TOP_BLUR, TOP_CHANGE, TOP_CLICK, TOP_FOCUS, TOP_INPUT, TOP_KEY_DOWN, TOP_KEY_UP, TOP_SELECTION_CHANGE]
  }
};

function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
  var event = SyntheticEvent.getPooled(eventTypes$1.change, inst, nativeEvent, target);
  event.type = 'change';
  // Flag this event loop as needing state restore.
  enqueueStateRestore(target);
  accumulateTwoPhaseDispatches(event);
  return event;
}
/**
 * For IE shims
 */
var activeElement = null;
var activeElementInst = null;

/**
 * SECTION: handle `change` event
 */
function shouldUseChangeEvent(elem) {
  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();
  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';
}

function manualDispatchChangeEvent(nativeEvent) {
  var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));

  // If change and propertychange bubbled, we'd just bind to it like all the
  // other events and have it go through ReactBrowserEventEmitter. Since it
  // doesn't, we manually listen for the events and so we have to enqueue and
  // process the abstract event manually.
  //
  // Batching is necessary here in order to ensure that all event handlers run
  // before the next rerender (including event handlers attached to ancestor
  // elements instead of directly on the input). Without this, controlled
  // components don't work properly in conjunction with event bubbling because
  // the component is rerendered and the value reverted before all the event
  // handlers can run. See https://github.com/facebook/react/issues/708.
  batchedUpdates(runEventInBatch, event);
}

function runEventInBatch(event) {
  runEventsInBatch(event);
}

function getInstIfValueChanged(targetInst) {
  var targetNode = getNodeFromInstance$1(targetInst);
  if (updateValueIfChanged(targetNode)) {
    return targetInst;
  }
}

function getTargetInstForChangeEvent(topLevelType, targetInst) {
  if (topLevelType === TOP_CHANGE) {
    return targetInst;
  }
}

/**
 * SECTION: handle `input` event
 */
var isInputEventSupported = false;
if (canUseDOM) {
  // IE9 claims to support the input event but fails to trigger it when
  // deleting text, so we ignore its input events.
  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);
}

/**
 * (For IE <=9) Starts tracking propertychange events on the passed-in element
 * and override the value property so that we can distinguish user events from
 * value changes in JS.
 */
function startWatchingForValueChange(target, targetInst) {
  activeElement = target;
  activeElementInst = targetInst;
  activeElement.attachEvent('onpropertychange', handlePropertyChange);
}

/**
 * (For IE <=9) Removes the event listeners from the currently-tracked element,
 * if any exists.
 */
function stopWatchingForValueChange() {
  if (!activeElement) {
    return;
  }
  activeElement.detachEvent('onpropertychange', handlePropertyChange);
  activeElement = null;
  activeElementInst = null;
}

/**
 * (For IE <=9) Handles a propertychange event, sending a `change` event if
 * the value of the active element has changed.
 */
function handlePropertyChange(nativeEvent) {
  if (nativeEvent.propertyName !== 'value') {
    return;
  }
  if (getInstIfValueChanged(activeElementInst)) {
    manualDispatchChangeEvent(nativeEvent);
  }
}

function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
  if (topLevelType === TOP_FOCUS) {
    // In IE9, propertychange fires for most input events but is buggy and
    // doesn't fire when text is deleted, but conveniently, selectionchange
    // appears to fire in all of the remaining cases so we catch those and
    // forward the event if the value has changed
    // In either case, we don't want to call the event handler if the value
    // is changed from JS so we redefine a setter for `.value` that updates
    // our activeElementValue variable, allowing us to ignore those changes
    //
    // stopWatching() should be a noop here but we call it just in case we
    // missed a blur event somehow.
    stopWatchingForValueChange();
    startWatchingForValueChange(target, targetInst);
  } else if (topLevelType === TOP_BLUR) {
    stopWatchingForValueChange();
  }
}

// For IE8 and IE9.
function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
  if (topLevelType === TOP_SELECTION_CHANGE || topLevelType === TOP_KEY_UP || topLevelType === TOP_KEY_DOWN) {
    // On the selectionchange event, the target is just document which isn't
    // helpful for us so just check activeElement instead.
    //
    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
    // propertychange on the first input event after setting `value` from a
    // script and fires only keydown, keypress, keyup. Catching keyup usually
    // gets it and catching keydown lets us fire an event for the first
    // keystroke if user does a key repeat (it'll be a little delayed: right
    // before the second keystroke). Other input methods (e.g., paste) seem to
    // fire selectionchange normally.
    return getInstIfValueChanged(activeElementInst);
  }
}

/**
 * SECTION: handle `click` event
 */
function shouldUseClickEvent(elem) {
  // Use the `click` event to detect changes to checkbox and radio inputs.
  // This approach works across all browsers, whereas `change` does not fire
  // until `blur` in IE8.
  var nodeName = elem.nodeName;
  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
}

function getTargetInstForClickEvent(topLevelType, targetInst) {
  if (topLevelType === TOP_CLICK) {
    return getInstIfValueChanged(targetInst);
  }
}

function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
  if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {
    return getInstIfValueChanged(targetInst);
  }
}

function handleControlledInputBlur(node) {
  var state = node._wrapperState;

  if (!state || !state.controlled || node.type !== 'number') {
    return;
  }

  if (!disableInputAttributeSyncing) {
    // If controlled, assign the value attribute to the current value on blur
    setDefaultValue(node, 'number', node.value);
  }
}

/**
 * This plugin creates an `onChange` event that normalizes change events
 * across form elements. This event fires at a time when it's possible to
 * change the element's value without seeing a flicker.
 *
 * Supported elements are:
 * - input (see `isTextInputElement`)
 * - textarea
 * - select
 */
var ChangeEventPlugin = {
  eventTypes: eventTypes$1,

  _isInputEventSupported: isInputEventSupported,

  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;

    var getTargetInstFunc = void 0,
        handleEventFunc = void 0;
    if (shouldUseChangeEvent(targetNode)) {
      getTargetInstFunc = getTargetInstForChangeEvent;
    } else if (isTextInputElement(targetNode)) {
      if (isInputEventSupported) {
        getTargetInstFunc = getTargetInstForInputOrChangeEvent;
      } else {
        getTargetInstFunc = getTargetInstForInputEventPolyfill;
        handleEventFunc = handleEventsForInputEventPolyfill;
      }
    } else if (shouldUseClickEvent(targetNode)) {
      getTargetInstFunc = getTargetInstForClickEvent;
    }

    if (getTargetInstFunc) {
      var inst = getTargetInstFunc(topLevelType, targetInst);
      if (inst) {
        var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);
        return event;
      }
    }

    if (handleEventFunc) {
      handleEventFunc(topLevelType, targetNode, targetInst);
    }

    // When blurring, set the value attribute for number inputs
    if (topLevelType === TOP_BLUR) {
      handleControlledInputBlur(targetNode);
    }
  }
};

/**
 * Module that is injectable into `EventPluginHub`, that specifies a
 * deterministic ordering of `EventPlugin`s. A convenient way to reason about
 * plugins, without having to package every one of them. This is better than
 * having plugins be ordered in the same order that they are injected because
 * that ordering would be influenced by the packaging order.
 * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that
 * preventing default on events is convenient in `SimpleEventPlugin` handlers.
 */
var DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];

var SyntheticUIEvent = SyntheticEvent.extend({
  view: null,
  detail: null
});

var modifierKeyToProp = {
  Alt: 'altKey',
  Control: 'ctrlKey',
  Meta: 'metaKey',
  Shift: 'shiftKey'
};

// Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support
// getModifierState. If getModifierState is not supported, we map it to a set of
// modifier keys exposed by the event. In this case, Lock-keys are not supported.
/**
 * Translation from modifier key to the associated property in the event.
 * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers
 */

function modifierStateGetter(keyArg) {
  var syntheticEvent = this;
  var nativeEvent = syntheticEvent.nativeEvent;
  if (nativeEvent.getModifierState) {
    return nativeEvent.getModifierState(keyArg);
  }
  var keyProp = modifierKeyToProp[keyArg];
  return keyProp ? !!nativeEvent[keyProp] : false;
}

function getEventModifierState(nativeEvent) {
  return modifierStateGetter;
}

var previousScreenX = 0;
var previousScreenY = 0;
// Use flags to signal movementX/Y has already been set
var isMovementXSet = false;
var isMovementYSet = false;

/**
 * @interface MouseEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var SyntheticMouseEvent = SyntheticUIEvent.extend({
  screenX: null,
  screenY: null,
  clientX: null,
  clientY: null,
  pageX: null,
  pageY: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  getModifierState: getEventModifierState,
  button: null,
  buttons: null,
  relatedTarget: function (event) {
    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);
  },
  movementX: function (event) {
    if ('movementX' in event) {
      return event.movementX;
    }

    var screenX = previousScreenX;
    previousScreenX = event.screenX;

    if (!isMovementXSet) {
      isMovementXSet = true;
      return 0;
    }

    return event.type === 'mousemove' ? event.screenX - screenX : 0;
  },
  movementY: function (event) {
    if ('movementY' in event) {
      return event.movementY;
    }

    var screenY = previousScreenY;
    previousScreenY = event.screenY;

    if (!isMovementYSet) {
      isMovementYSet = true;
      return 0;
    }

    return event.type === 'mousemove' ? event.screenY - screenY : 0;
  }
});

/**
 * @interface PointerEvent
 * @see http://www.w3.org/TR/pointerevents/
 */
var SyntheticPointerEvent = SyntheticMouseEvent.extend({
  pointerId: null,
  width: null,
  height: null,
  pressure: null,
  tangentialPressure: null,
  tiltX: null,
  tiltY: null,
  twist: null,
  pointerType: null,
  isPrimary: null
});

var eventTypes$2 = {
  mouseEnter: {
    registrationName: 'onMouseEnter',
    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]
  },
  mouseLeave: {
    registrationName: 'onMouseLeave',
    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]
  },
  pointerEnter: {
    registrationName: 'onPointerEnter',
    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]
  },
  pointerLeave: {
    registrationName: 'onPointerLeave',
    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]
  }
};

var EnterLeaveEventPlugin = {
  eventTypes: eventTypes$2,

  /**
   * For almost every interaction we care about, there will be both a top-level
   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that
   * we do not extract duplicate events. However, moving the mouse into the
   * browser from outside will not fire a `mouseout` event. In this case, we use
   * the `mouseover` top-level event.
   */
  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
    var isOverEvent = topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;
    var isOutEvent = topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_POINTER_OUT;

    if (isOverEvent && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {
      return null;
    }

    if (!isOutEvent && !isOverEvent) {
      // Must not be a mouse or pointer in or out - ignoring.
      return null;
    }

    var win = void 0;
    if (nativeEventTarget.window === nativeEventTarget) {
      // `nativeEventTarget` is probably a window object.
      win = nativeEventTarget;
    } else {
      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
      var doc = nativeEventTarget.ownerDocument;
      if (doc) {
        win = doc.defaultView || doc.parentWindow;
      } else {
        win = window;
      }
    }

    var from = void 0;
    var to = void 0;
    if (isOutEvent) {
      from = targetInst;
      var related = nativeEvent.relatedTarget || nativeEvent.toElement;
      to = related ? getClosestInstanceFromNode(related) : null;
    } else {
      // Moving to a node from outside the window.
      from = null;
      to = targetInst;
    }

    if (from === to) {
      // Nothing pertains to our managed components.
      return null;
    }

    var eventInterface = void 0,
        leaveEventType = void 0,
        enterEventType = void 0,
        eventTypePrefix = void 0;

    if (topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_MOUSE_OVER) {
      eventInterface = SyntheticMouseEvent;
      leaveEventType = eventTypes$2.mouseLeave;
      enterEventType = eventTypes$2.mouseEnter;
      eventTypePrefix = 'mouse';
    } else if (topLevelType === TOP_POINTER_OUT || topLevelType === TOP_POINTER_OVER) {
      eventInterface = SyntheticPointerEvent;
      leaveEventType = eventTypes$2.pointerLeave;
      enterEventType = eventTypes$2.pointerEnter;
      eventTypePrefix = 'pointer';
    }

    var fromNode = from == null ? win : getNodeFromInstance$1(from);
    var toNode = to == null ? win : getNodeFromInstance$1(to);

    var leave = eventInterface.getPooled(leaveEventType, from, nativeEvent, nativeEventTarget);
    leave.type = eventTypePrefix + 'leave';
    leave.target = fromNode;
    leave.relatedTarget = toNode;

    var enter = eventInterface.getPooled(enterEventType, to, nativeEvent, nativeEventTarget);
    enter.type = eventTypePrefix + 'enter';
    enter.target = toNode;
    enter.relatedTarget = fromNode;

    accumulateEnterLeaveDispatches(leave, enter, from, to);

    return [leave, enter];
  }
};

/**
 * inlined Object.is polyfill to avoid requiring consumers ship their own
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
 */
function is(x, y) {
  return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
  ;
}

var hasOwnProperty$1 = Object.prototype.hasOwnProperty;

/**
 * Performs equality by iterating through keys on an object and returning false
 * when any key has values which are not strictly equal between the arguments.
 * Returns true when the values of all keys are strictly equal.
 */
function shallowEqual(objA, objB) {
  if (is(objA, objB)) {
    return true;
  }

  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
    return false;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  // Test for A's keys different from B.
  for (var i = 0; i < keysA.length; i++) {
    if (!hasOwnProperty$1.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
      return false;
    }
  }

  return true;
}

/**
 * `ReactInstanceMap` maintains a mapping from a public facing stateful
 * instance (key) and the internal representation (value). This allows public
 * methods to accept the user facing instance as an argument and map them back
 * to internal methods.
 *
 * Note that this module is currently shared and assumed to be stateless.
 * If this becomes an actual Map, that will break.
 */

/**
 * This API should be called `delete` but we'd have to make sure to always
 * transform these to strings for IE support. When this transform is fully
 * supported we can rename it.
 */


function get(key) {
  return key._reactInternalFiber;
}

function has(key) {
  return key._reactInternalFiber !== undefined;
}

function set(key, value) {
  key._reactInternalFiber = value;
}

// Don't change these two values. They're used by React Dev Tools.
var NoEffect = /*              */0;
var PerformedWork = /*         */1;

// You can change the rest (and add more).
var Placement = /*             */2;
var Update = /*                */4;
var PlacementAndUpdate = /*    */6;
var Deletion = /*              */8;
var ContentReset = /*          */16;
var Callback = /*              */32;
var DidCapture = /*            */64;
var Ref = /*                   */128;
var Snapshot = /*              */256;
var Passive = /*               */512;

// Passive & Update & Callback & Ref & Snapshot
var LifecycleEffectMask = /*   */932;

// Union of all host effects
var HostEffectMask = /*        */1023;

var Incomplete = /*            */1024;
var ShouldCapture = /*         */2048;

var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;

var MOUNTING = 1;
var MOUNTED = 2;
var UNMOUNTED = 3;

function isFiberMountedImpl(fiber) {
  var node = fiber;
  if (!fiber.alternate) {
    // If there is no alternate, this might be a new tree that isn't inserted
    // yet. If it is, then it will have a pending insertion effect on it.
    if ((node.effectTag & Placement) !== NoEffect) {
      return MOUNTING;
    }
    while (node.return) {
      node = node.return;
      if ((node.effectTag & Placement) !== NoEffect) {
        return MOUNTING;
      }
    }
  } else {
    while (node.return) {
      node = node.return;
    }
  }
  if (node.tag === HostRoot) {
    // TODO: Check if this was a nested HostRoot when used with
    // renderContainerIntoSubtree.
    return MOUNTED;
  }
  // If we didn't hit the root, that means that we're in an disconnected tree
  // that has been unmounted.
  return UNMOUNTED;
}

function isFiberMounted(fiber) {
  return isFiberMountedImpl(fiber) === MOUNTED;
}

function isMounted(component) {
  {
    var owner = ReactCurrentOwner$1.current;
    if (owner !== null && owner.tag === ClassComponent) {
      var ownerFiber = owner;
      var instance = ownerFiber.stateNode;
      !instance._warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component') : void 0;
      instance._warnedAboutRefsInRender = true;
    }
  }

  var fiber = get(component);
  if (!fiber) {
    return false;
  }
  return isFiberMountedImpl(fiber) === MOUNTED;
}

function assertIsMounted(fiber) {
  !(isFiberMountedImpl(fiber) === MOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
}

function findCurrentFiberUsingSlowPath(fiber) {
  var alternate = fiber.alternate;
  if (!alternate) {
    // If there is no alternate, then we only need to check if it is mounted.
    var state = isFiberMountedImpl(fiber);
    !(state !== UNMOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
    if (state === MOUNTING) {
      return null;
    }
    return fiber;
  }
  // If we have two possible branches, we'll walk backwards up to the root
  // to see what path the root points to. On the way we may hit one of the
  // special cases and we'll deal with them.
  var a = fiber;
  var b = alternate;
  while (true) {
    var parentA = a.return;
    var parentB = parentA ? parentA.alternate : null;
    if (!parentA || !parentB) {
      // We're at the root.
      break;
    }

    // If both copies of the parent fiber point to the same child, we can
    // assume that the child is current. This happens when we bailout on low
    // priority: the bailed out fiber's child reuses the current child.
    if (parentA.child === parentB.child) {
      var child = parentA.child;
      while (child) {
        if (child === a) {
          // We've determined that A is the current branch.
          assertIsMounted(parentA);
          return fiber;
        }
        if (child === b) {
          // We've determined that B is the current branch.
          assertIsMounted(parentA);
          return alternate;
        }
        child = child.sibling;
      }
      // We should never have an alternate for any mounting node. So the only
      // way this could possibly happen is if this was unmounted, if at all.
      invariant(false, 'Unable to find node on an unmounted component.');
    }

    if (a.return !== b.return) {
      // The return pointer of A and the return pointer of B point to different
      // fibers. We assume that return pointers never criss-cross, so A must
      // belong to the child set of A.return, and B must belong to the child
      // set of B.return.
      a = parentA;
      b = parentB;
    } else {
      // The return pointers point to the same fiber. We'll have to use the
      // default, slow path: scan the child sets of each parent alternate to see
      // which child belongs to which set.
      //
      // Search parent A's child set
      var didFindChild = false;
      var _child = parentA.child;
      while (_child) {
        if (_child === a) {
          didFindChild = true;
          a = parentA;
          b = parentB;
          break;
        }
        if (_child === b) {
          didFindChild = true;
          b = parentA;
          a = parentB;
          break;
        }
        _child = _child.sibling;
      }
      if (!didFindChild) {
        // Search parent B's child set
        _child = parentB.child;
        while (_child) {
          if (_child === a) {
            didFindChild = true;
            a = parentB;
            b = parentA;
            break;
          }
          if (_child === b) {
            didFindChild = true;
            b = parentB;
            a = parentA;
            break;
          }
          _child = _child.sibling;
        }
        !didFindChild ? invariant(false, 'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.') : void 0;
      }
    }

    !(a.alternate === b) ? invariant(false, 'Return fibers should always be each others\' alternates. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  }
  // If the root is not a host container, we're in a disconnected tree. I.e.
  // unmounted.
  !(a.tag === HostRoot) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
  if (a.stateNode.current === a) {
    // We've determined that A is the current branch.
    return fiber;
  }
  // Otherwise B has to be current branch.
  return alternate;
}

function findCurrentHostFiber(parent) {
  var currentParent = findCurrentFiberUsingSlowPath(parent);
  if (!currentParent) {
    return null;
  }

  // Next we'll drill down this component to find the first HostComponent/Text.
  var node = currentParent;
  while (true) {
    if (node.tag === HostComponent || node.tag === HostText) {
      return node;
    } else if (node.child) {
      node.child.return = node;
      node = node.child;
      continue;
    }
    if (node === currentParent) {
      return null;
    }
    while (!node.sibling) {
      if (!node.return || node.return === currentParent) {
        return null;
      }
      node = node.return;
    }
    node.sibling.return = node.return;
    node = node.sibling;
  }
  // Flow needs the return null here, but ESLint complains about it.
  // eslint-disable-next-line no-unreachable
  return null;
}

function findCurrentHostFiberWithNoPortals(parent) {
  var currentParent = findCurrentFiberUsingSlowPath(parent);
  if (!currentParent) {
    return null;
  }

  // Next we'll drill down this component to find the first HostComponent/Text.
  var node = currentParent;
  while (true) {
    if (node.tag === HostComponent || node.tag === HostText) {
      return node;
    } else if (node.child && node.tag !== HostPortal) {
      node.child.return = node;
      node = node.child;
      continue;
    }
    if (node === currentParent) {
      return null;
    }
    while (!node.sibling) {
      if (!node.return || node.return === currentParent) {
        return null;
      }
      node = node.return;
    }
    node.sibling.return = node.return;
    node = node.sibling;
  }
  // Flow needs the return null here, but ESLint complains about it.
  // eslint-disable-next-line no-unreachable
  return null;
}

function addEventBubbleListener(element, eventType, listener) {
  element.addEventListener(eventType, listener, false);
}

function addEventCaptureListener(element, eventType, listener) {
  element.addEventListener(eventType, listener, true);
}

/**
 * @interface Event
 * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface
 * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent
 */
var SyntheticAnimationEvent = SyntheticEvent.extend({
  animationName: null,
  elapsedTime: null,
  pseudoElement: null
});

/**
 * @interface Event
 * @see http://www.w3.org/TR/clipboard-apis/
 */
var SyntheticClipboardEvent = SyntheticEvent.extend({
  clipboardData: function (event) {
    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;
  }
});

/**
 * @interface FocusEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var SyntheticFocusEvent = SyntheticUIEvent.extend({
  relatedTarget: null
});

/**
 * `charCode` represents the actual "character code" and is safe to use with
 * `String.fromCharCode`. As such, only keys that correspond to printable
 * characters produce a valid `charCode`, the only exception to this is Enter.
 * The Tab-key is considered non-printable and does not have a `charCode`,
 * presumably because it does not produce a tab-character in browsers.
 *
 * @param {object} nativeEvent Native browser event.
 * @return {number} Normalized `charCode` property.
 */
function getEventCharCode(nativeEvent) {
  var charCode = void 0;
  var keyCode = nativeEvent.keyCode;

  if ('charCode' in nativeEvent) {
    charCode = nativeEvent.charCode;

    // FF does not set `charCode` for the Enter-key, check against `keyCode`.
    if (charCode === 0 && keyCode === 13) {
      charCode = 13;
    }
  } else {
    // IE8 does not implement `charCode`, but `keyCode` has the correct value.
    charCode = keyCode;
  }

  // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)
  // report Enter as charCode 10 when ctrl is pressed.
  if (charCode === 10) {
    charCode = 13;
  }

  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
  // Must not discard the (non-)printable Enter-key.
  if (charCode >= 32 || charCode === 13) {
    return charCode;
  }

  return 0;
}

/**
 * Normalization of deprecated HTML5 `key` values
 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
 */
var normalizeKey = {
  Esc: 'Escape',
  Spacebar: ' ',
  Left: 'ArrowLeft',
  Up: 'ArrowUp',
  Right: 'ArrowRight',
  Down: 'ArrowDown',
  Del: 'Delete',
  Win: 'OS',
  Menu: 'ContextMenu',
  Apps: 'ContextMenu',
  Scroll: 'ScrollLock',
  MozPrintableKey: 'Unidentified'
};

/**
 * Translation from legacy `keyCode` to HTML5 `key`
 * Only special keys supported, all others depend on keyboard layout or browser
 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
 */
var translateToKey = {
  '8': 'Backspace',
  '9': 'Tab',
  '12': 'Clear',
  '13': 'Enter',
  '16': 'Shift',
  '17': 'Control',
  '18': 'Alt',
  '19': 'Pause',
  '20': 'CapsLock',
  '27': 'Escape',
  '32': ' ',
  '33': 'PageUp',
  '34': 'PageDown',
  '35': 'End',
  '36': 'Home',
  '37': 'ArrowLeft',
  '38': 'ArrowUp',
  '39': 'ArrowRight',
  '40': 'ArrowDown',
  '45': 'Insert',
  '46': 'Delete',
  '112': 'F1',
  '113': 'F2',
  '114': 'F3',
  '115': 'F4',
  '116': 'F5',
  '117': 'F6',
  '118': 'F7',
  '119': 'F8',
  '120': 'F9',
  '121': 'F10',
  '122': 'F11',
  '123': 'F12',
  '144': 'NumLock',
  '145': 'ScrollLock',
  '224': 'Meta'
};

/**
 * @param {object} nativeEvent Native browser event.
 * @return {string} Normalized `key` property.
 */
function getEventKey(nativeEvent) {
  if (nativeEvent.key) {
    // Normalize inconsistent values reported by browsers due to
    // implementations of a working draft specification.

    // FireFox implements `key` but returns `MozPrintableKey` for all
    // printable characters (normalized to `Unidentified`), ignore it.
    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
    if (key !== 'Unidentified') {
      return key;
    }
  }

  // Browser does not implement `key`, polyfill as much of it as we can.
  if (nativeEvent.type === 'keypress') {
    var charCode = getEventCharCode(nativeEvent);

    // The enter-key is technically both printable and non-printable and can
    // thus be captured by `keypress`, no other non-printable key should.
    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);
  }
  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {
    // While user keyboard layout determines the actual meaning of each
    // `keyCode` value, almost all function keys have a universal value.
    return translateToKey[nativeEvent.keyCode] || 'Unidentified';
  }
  return '';
}

/**
 * @interface KeyboardEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var SyntheticKeyboardEvent = SyntheticUIEvent.extend({
  key: getEventKey,
  location: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  repeat: null,
  locale: null,
  getModifierState: getEventModifierState,
  // Legacy Interface
  charCode: function (event) {
    // `charCode` is the result of a KeyPress event and represents the value of
    // the actual printable character.

    // KeyPress is deprecated, but its replacement is not yet final and not
    // implemented in any major browser. Only KeyPress has charCode.
    if (event.type === 'keypress') {
      return getEventCharCode(event);
    }
    return 0;
  },
  keyCode: function (event) {
    // `keyCode` is the result of a KeyDown/Up event and represents the value of
    // physical keyboard key.

    // The actual meaning of the value depends on the users' keyboard layout
    // which cannot be detected. Assuming that it is a US keyboard layout
    // provides a surprisingly accurate mapping for US and European users.
    // Due to this, it is left to the user to implement at this time.
    if (event.type === 'keydown' || event.type === 'keyup') {
      return event.keyCode;
    }
    return 0;
  },
  which: function (event) {
    // `which` is an alias for either `keyCode` or `charCode` depending on the
    // type of the event.
    if (event.type === 'keypress') {
      return getEventCharCode(event);
    }
    if (event.type === 'keydown' || event.type === 'keyup') {
      return event.keyCode;
    }
    return 0;
  }
});

/**
 * @interface DragEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var SyntheticDragEvent = SyntheticMouseEvent.extend({
  dataTransfer: null
});

/**
 * @interface TouchEvent
 * @see http://www.w3.org/TR/touch-events/
 */
var SyntheticTouchEvent = SyntheticUIEvent.extend({
  touches: null,
  targetTouches: null,
  changedTouches: null,
  altKey: null,
  metaKey: null,
  ctrlKey: null,
  shiftKey: null,
  getModifierState: getEventModifierState
});

/**
 * @interface Event
 * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-
 * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent
 */
var SyntheticTransitionEvent = SyntheticEvent.extend({
  propertyName: null,
  elapsedTime: null,
  pseudoElement: null
});

/**
 * @interface WheelEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var SyntheticWheelEvent = SyntheticMouseEvent.extend({
  deltaX: function (event) {
    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;
  },
  deltaY: function (event) {
    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
    'wheelDelta' in event ? -event.wheelDelta : 0;
  },

  deltaZ: null,

  // Browsers without "deltaMode" is reporting in raw wheel delta where one
  // notch on the scroll is always +/- 120, roughly equivalent to pixels.
  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
  deltaMode: null
});

/**
 * Turns
 * ['abort', ...]
 * into
 * eventTypes = {
 *   'abort': {
 *     phasedRegistrationNames: {
 *       bubbled: 'onAbort',
 *       captured: 'onAbortCapture',
 *     },
 *     dependencies: [TOP_ABORT],
 *   },
 *   ...
 * };
 * topLevelEventsToDispatchConfig = new Map([
 *   [TOP_ABORT, { sameConfig }],
 * ]);
 */

var interactiveEventTypeNames = [[TOP_BLUR, 'blur'], [TOP_CANCEL, 'cancel'], [TOP_CLICK, 'click'], [TOP_CLOSE, 'close'], [TOP_CONTEXT_MENU, 'contextMenu'], [TOP_COPY, 'copy'], [TOP_CUT, 'cut'], [TOP_AUX_CLICK, 'auxClick'], [TOP_DOUBLE_CLICK, 'doubleClick'], [TOP_DRAG_END, 'dragEnd'], [TOP_DRAG_START, 'dragStart'], [TOP_DROP, 'drop'], [TOP_FOCUS, 'focus'], [TOP_INPUT, 'input'], [TOP_INVALID, 'invalid'], [TOP_KEY_DOWN, 'keyDown'], [TOP_KEY_PRESS, 'keyPress'], [TOP_KEY_UP, 'keyUp'], [TOP_MOUSE_DOWN, 'mouseDown'], [TOP_MOUSE_UP, 'mouseUp'], [TOP_PASTE, 'paste'], [TOP_PAUSE, 'pause'], [TOP_PLAY, 'play'], [TOP_POINTER_CANCEL, 'pointerCancel'], [TOP_POINTER_DOWN, 'pointerDown'], [TOP_POINTER_UP, 'pointerUp'], [TOP_RATE_CHANGE, 'rateChange'], [TOP_RESET, 'reset'], [TOP_SEEKED, 'seeked'], [TOP_SUBMIT, 'submit'], [TOP_TOUCH_CANCEL, 'touchCancel'], [TOP_TOUCH_END, 'touchEnd'], [TOP_TOUCH_START, 'touchStart'], [TOP_VOLUME_CHANGE, 'volumeChange']];
var nonInteractiveEventTypeNames = [[TOP_ABORT, 'abort'], [TOP_ANIMATION_END, 'animationEnd'], [TOP_ANIMATION_ITERATION, 'animationIteration'], [TOP_ANIMATION_START, 'animationStart'], [TOP_CAN_PLAY, 'canPlay'], [TOP_CAN_PLAY_THROUGH, 'canPlayThrough'], [TOP_DRAG, 'drag'], [TOP_DRAG_ENTER, 'dragEnter'], [TOP_DRAG_EXIT, 'dragExit'], [TOP_DRAG_LEAVE, 'dragLeave'], [TOP_DRAG_OVER, 'dragOver'], [TOP_DURATION_CHANGE, 'durationChange'], [TOP_EMPTIED, 'emptied'], [TOP_ENCRYPTED, 'encrypted'], [TOP_ENDED, 'ended'], [TOP_ERROR, 'error'], [TOP_GOT_POINTER_CAPTURE, 'gotPointerCapture'], [TOP_LOAD, 'load'], [TOP_LOADED_DATA, 'loadedData'], [TOP_LOADED_METADATA, 'loadedMetadata'], [TOP_LOAD_START, 'loadStart'], [TOP_LOST_POINTER_CAPTURE, 'lostPointerCapture'], [TOP_MOUSE_MOVE, 'mouseMove'], [TOP_MOUSE_OUT, 'mouseOut'], [TOP_MOUSE_OVER, 'mouseOver'], [TOP_PLAYING, 'playing'], [TOP_POINTER_MOVE, 'pointerMove'], [TOP_POINTER_OUT, 'pointerOut'], [TOP_POINTER_OVER, 'pointerOver'], [TOP_PROGRESS, 'progress'], [TOP_SCROLL, 'scroll'], [TOP_SEEKING, 'seeking'], [TOP_STALLED, 'stalled'], [TOP_SUSPEND, 'suspend'], [TOP_TIME_UPDATE, 'timeUpdate'], [TOP_TOGGLE, 'toggle'], [TOP_TOUCH_MOVE, 'touchMove'], [TOP_TRANSITION_END, 'transitionEnd'], [TOP_WAITING, 'waiting'], [TOP_WHEEL, 'wheel']];

var eventTypes$4 = {};
var topLevelEventsToDispatchConfig = {};

function addEventTypeNameToConfig(_ref, isInteractive) {
  var topEvent = _ref[0],
      event = _ref[1];

  var capitalizedEvent = event[0].toUpperCase() + event.slice(1);
  var onEvent = 'on' + capitalizedEvent;

  var type = {
    phasedRegistrationNames: {
      bubbled: onEvent,
      captured: onEvent + 'Capture'
    },
    dependencies: [topEvent],
    isInteractive: isInteractive
  };
  eventTypes$4[event] = type;
  topLevelEventsToDispatchConfig[topEvent] = type;
}

interactiveEventTypeNames.forEach(function (eventTuple) {
  addEventTypeNameToConfig(eventTuple, true);
});
nonInteractiveEventTypeNames.forEach(function (eventTuple) {
  addEventTypeNameToConfig(eventTuple, false);
});

// Only used in DEV for exhaustiveness validation.
var knownHTMLTopLevelTypes = [TOP_ABORT, TOP_CANCEL, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_CLOSE, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_INPUT, TOP_INVALID, TOP_LOAD, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_RESET, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUBMIT, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_TOGGLE, TOP_VOLUME_CHANGE, TOP_WAITING];

var SimpleEventPlugin = {
  eventTypes: eventTypes$4,

  isInteractiveTopLevelEventType: function (topLevelType) {
    var config = topLevelEventsToDispatchConfig[topLevelType];
    return config !== undefined && config.isInteractive === true;
  },


  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];
    if (!dispatchConfig) {
      return null;
    }
    var EventConstructor = void 0;
    switch (topLevelType) {
      case TOP_KEY_PRESS:
        // Firefox creates a keypress event for function keys too. This removes
        // the unwanted keypress events. Enter is however both printable and
        // non-printable. One would expect Tab to be as well (but it isn't).
        if (getEventCharCode(nativeEvent) === 0) {
          return null;
        }
      /* falls through */
      case TOP_KEY_DOWN:
      case TOP_KEY_UP:
        EventConstructor = SyntheticKeyboardEvent;
        break;
      case TOP_BLUR:
      case TOP_FOCUS:
        EventConstructor = SyntheticFocusEvent;
        break;
      case TOP_CLICK:
        // Firefox creates a click event on right mouse clicks. This removes the
        // unwanted click events.
        if (nativeEvent.button === 2) {
          return null;
        }
      /* falls through */
      case TOP_AUX_CLICK:
      case TOP_DOUBLE_CLICK:
      case TOP_MOUSE_DOWN:
      case TOP_MOUSE_MOVE:
      case TOP_MOUSE_UP:
      // TODO: Disabled elements should not respond to mouse events
      /* falls through */
      case TOP_MOUSE_OUT:
      case TOP_MOUSE_OVER:
      case TOP_CONTEXT_MENU:
        EventConstructor = SyntheticMouseEvent;
        break;
      case TOP_DRAG:
      case TOP_DRAG_END:
      case TOP_DRAG_ENTER:
      case TOP_DRAG_EXIT:
      case TOP_DRAG_LEAVE:
      case TOP_DRAG_OVER:
      case TOP_DRAG_START:
      case TOP_DROP:
        EventConstructor = SyntheticDragEvent;
        break;
      case TOP_TOUCH_CANCEL:
      case TOP_TOUCH_END:
      case TOP_TOUCH_MOVE:
      case TOP_TOUCH_START:
        EventConstructor = SyntheticTouchEvent;
        break;
      case TOP_ANIMATION_END:
      case TOP_ANIMATION_ITERATION:
      case TOP_ANIMATION_START:
        EventConstructor = SyntheticAnimationEvent;
        break;
      case TOP_TRANSITION_END:
        EventConstructor = SyntheticTransitionEvent;
        break;
      case TOP_SCROLL:
        EventConstructor = SyntheticUIEvent;
        break;
      case TOP_WHEEL:
        EventConstructor = SyntheticWheelEvent;
        break;
      case TOP_COPY:
      case TOP_CUT:
      case TOP_PASTE:
        EventConstructor = SyntheticClipboardEvent;
        break;
      case TOP_GOT_POINTER_CAPTURE:
      case TOP_LOST_POINTER_CAPTURE:
      case TOP_POINTER_CANCEL:
      case TOP_POINTER_DOWN:
      case TOP_POINTER_MOVE:
      case TOP_POINTER_OUT:
      case TOP_POINTER_OVER:
      case TOP_POINTER_UP:
        EventConstructor = SyntheticPointerEvent;
        break;
      default:
        {
          if (knownHTMLTopLevelTypes.indexOf(topLevelType) === -1) {
            warningWithoutStack$1(false, 'SimpleEventPlugin: Unhandled event type, `%s`. This warning ' + 'is likely caused by a bug in React. Please file an issue.', topLevelType);
          }
        }
        // HTML Events
        // @see http://www.w3.org/TR/html5/index.html#events-0
        EventConstructor = SyntheticEvent;
        break;
    }
    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);
    accumulateTwoPhaseDispatches(event);
    return event;
  }
};

var isInteractiveTopLevelEventType = SimpleEventPlugin.isInteractiveTopLevelEventType;


var CALLBACK_BOOKKEEPING_POOL_SIZE = 10;
var callbackBookkeepingPool = [];

/**
 * Find the deepest React component completely containing the root of the
 * passed-in instance (for use when entire React trees are nested within each
 * other). If React trees are not nested, returns null.
 */
function findRootContainerNode(inst) {
  // TODO: It may be a good idea to cache this to prevent unnecessary DOM
  // traversal, but caching is difficult to do correctly without using a
  // mutation observer to listen for all DOM changes.
  while (inst.return) {
    inst = inst.return;
  }
  if (inst.tag !== HostRoot) {
    // This can happen if we're in a detached tree.
    return null;
  }
  return inst.stateNode.containerInfo;
}

// Used to store ancestor hierarchy in top level callback
function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {
  if (callbackBookkeepingPool.length) {
    var instance = callbackBookkeepingPool.pop();
    instance.topLevelType = topLevelType;
    instance.nativeEvent = nativeEvent;
    instance.targetInst = targetInst;
    return instance;
  }
  return {
    topLevelType: topLevelType,
    nativeEvent: nativeEvent,
    targetInst: targetInst,
    ancestors: []
  };
}

function releaseTopLevelCallbackBookKeeping(instance) {
  instance.topLevelType = null;
  instance.nativeEvent = null;
  instance.targetInst = null;
  instance.ancestors.length = 0;
  if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {
    callbackBookkeepingPool.push(instance);
  }
}

function handleTopLevel(bookKeeping) {
  var targetInst = bookKeeping.targetInst;

  // Loop through the hierarchy, in case there's any nested components.
  // It's important that we build the array of ancestors before calling any
  // event handlers, because event handlers can modify the DOM, leading to
  // inconsistencies with ReactMount's node cache. See #1105.
  var ancestor = targetInst;
  do {
    if (!ancestor) {
      bookKeeping.ancestors.push(ancestor);
      break;
    }
    var root = findRootContainerNode(ancestor);
    if (!root) {
      break;
    }
    bookKeeping.ancestors.push(ancestor);
    ancestor = getClosestInstanceFromNode(root);
  } while (ancestor);

  for (var i = 0; i < bookKeeping.ancestors.length; i++) {
    targetInst = bookKeeping.ancestors[i];
    runExtractedEventsInBatch(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));
  }
}

// TODO: can we stop exporting these?
var _enabled = true;

function setEnabled(enabled) {
  _enabled = !!enabled;
}

function isEnabled() {
  return _enabled;
}

/**
 * Traps top-level events by using event bubbling.
 *
 * @param {number} topLevelType Number from `TopLevelEventTypes`.
 * @param {object} element Element on which to attach listener.
 * @return {?object} An object with a remove function which will forcefully
 *                  remove the listener.
 * @internal
 */
function trapBubbledEvent(topLevelType, element) {
  if (!element) {
    return null;
  }
  var dispatch = isInteractiveTopLevelEventType(topLevelType) ? dispatchInteractiveEvent : dispatchEvent;

  addEventBubbleListener(element, getRawEventName(topLevelType),
  // Check if interactive and wrap in interactiveUpdates
  dispatch.bind(null, topLevelType));
}

/**
 * Traps a top-level event by using event capturing.
 *
 * @param {number} topLevelType Number from `TopLevelEventTypes`.
 * @param {object} element Element on which to attach listener.
 * @return {?object} An object with a remove function which will forcefully
 *                  remove the listener.
 * @internal
 */
function trapCapturedEvent(topLevelType, element) {
  if (!element) {
    return null;
  }
  var dispatch = isInteractiveTopLevelEventType(topLevelType) ? dispatchInteractiveEvent : dispatchEvent;

  addEventCaptureListener(element, getRawEventName(topLevelType),
  // Check if interactive and wrap in interactiveUpdates
  dispatch.bind(null, topLevelType));
}

function dispatchInteractiveEvent(topLevelType, nativeEvent) {
  interactiveUpdates(dispatchEvent, topLevelType, nativeEvent);
}

function dispatchEvent(topLevelType, nativeEvent) {
  if (!_enabled) {
    return;
  }

  var nativeEventTarget = getEventTarget(nativeEvent);
  var targetInst = getClosestInstanceFromNode(nativeEventTarget);
  if (targetInst !== null && typeof targetInst.tag === 'number' && !isFiberMounted(targetInst)) {
    // If we get an event (ex: img onload) before committing that
    // component's mount, ignore it for now (that is, treat it as if it was an
    // event on a non-React tree). We might also consider queueing events and
    // dispatching them after the mount.
    targetInst = null;
  }

  var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst);

  try {
    // Event queue being processed in the same cycle allows
    // `preventDefault`.
    batchedUpdates(handleTopLevel, bookKeeping);
  } finally {
    releaseTopLevelCallbackBookKeeping(bookKeeping);
  }
}

/**
 * Summary of `ReactBrowserEventEmitter` event handling:
 *
 *  - Top-level delegation is used to trap most native browser events. This
 *    may only occur in the main thread and is the responsibility of
 *    ReactDOMEventListener, which is injected and can therefore support
 *    pluggable event sources. This is the only work that occurs in the main
 *    thread.
 *
 *  - We normalize and de-duplicate events to account for browser quirks. This
 *    may be done in the worker thread.
 *
 *  - Forward these native events (with the associated top-level type used to
 *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want
 *    to extract any synthetic events.
 *
 *  - The `EventPluginHub` will then process each event by annotating them with
 *    "dispatches", a sequence of listeners and IDs that care about that event.
 *
 *  - The `EventPluginHub` then dispatches the events.
 *
 * Overview of React and the event system:
 *
 * +------------+    .
 * |    DOM     |    .
 * +------------+    .
 *       |           .
 *       v           .
 * +------------+    .
 * | ReactEvent |    .
 * |  Listener  |    .
 * +------------+    .                         +-----------+
 *       |           .               +--------+|SimpleEvent|
 *       |           .               |         |Plugin     |
 * +-----|------+    .               v         +-----------+
 * |     |      |    .    +--------------+                    +------------+
 * |     +-----------.--->|EventPluginHub|                    |    Event   |
 * |            |    .    |              |     +-----------+  | Propagators|
 * | ReactEvent |    .    |              |     |TapEvent   |  |------------|
 * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|
 * |            |    .    |              |     +-----------+  |  utilities |
 * |     +-----------.--->|              |                    +------------+
 * |     |      |    .    +--------------+
 * +-----|------+    .                ^        +-----------+
 *       |           .                |        |Enter/Leave|
 *       +           .                +-------+|Plugin     |
 * +-------------+   .                         +-----------+
 * | application |   .
 * |-------------|   .
 * |             |   .
 * |             |   .
 * +-------------+   .
 *                   .
 *    React Core     .  General Purpose Event Plugin System
 */

var alreadyListeningTo = {};
var reactTopListenersCounter = 0;

/**
 * To ensure no conflicts with other potential React instances on the page
 */
var topListenersIDKey = '_reactListenersID' + ('' + Math.random()).slice(2);

function getListeningForDocument(mountAt) {
  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
  // directly.
  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
    mountAt[topListenersIDKey] = reactTopListenersCounter++;
    alreadyListeningTo[mountAt[topListenersIDKey]] = {};
  }
  return alreadyListeningTo[mountAt[topListenersIDKey]];
}

/**
 * We listen for bubbled touch events on the document object.
 *
 * Firefox v8.01 (and possibly others) exhibited strange behavior when
 * mounting `onmousemove` events at some node that was not the document
 * element. The symptoms were that if your mouse is not moving over something
 * contained within that mount point (for example on the background) the
 * top-level listeners for `onmousemove` won't be called. However, if you
 * register the `mousemove` on the document object, then it will of course
 * catch all `mousemove`s. This along with iOS quirks, justifies restricting
 * top-level listeners to the document object only, at least for these
 * movement types of events and possibly all events.
 *
 * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
 *
 * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but
 * they bubble to document.
 *
 * @param {string} registrationName Name of listener (e.g. `onClick`).
 * @param {object} mountAt Container where to mount the listener
 */
function listenTo(registrationName, mountAt) {
  var isListening = getListeningForDocument(mountAt);
  var dependencies = registrationNameDependencies[registrationName];

  for (var i = 0; i < dependencies.length; i++) {
    var dependency = dependencies[i];
    if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
      switch (dependency) {
        case TOP_SCROLL:
          trapCapturedEvent(TOP_SCROLL, mountAt);
          break;
        case TOP_FOCUS:
        case TOP_BLUR:
          trapCapturedEvent(TOP_FOCUS, mountAt);
          trapCapturedEvent(TOP_BLUR, mountAt);
          // We set the flag for a single dependency later in this function,
          // but this ensures we mark both as attached rather than just one.
          isListening[TOP_BLUR] = true;
          isListening[TOP_FOCUS] = true;
          break;
        case TOP_CANCEL:
        case TOP_CLOSE:
          if (isEventSupported(getRawEventName(dependency))) {
            trapCapturedEvent(dependency, mountAt);
          }
          break;
        case TOP_INVALID:
        case TOP_SUBMIT:
        case TOP_RESET:
          // We listen to them on the target DOM elements.
          // Some of them bubble so we don't want them to fire twice.
          break;
        default:
          // By default, listen on the top level to all non-media events.
          // Media events don't bubble so adding the listener wouldn't do anything.
          var isMediaEvent = mediaEventTypes.indexOf(dependency) !== -1;
          if (!isMediaEvent) {
            trapBubbledEvent(dependency, mountAt);
          }
          break;
      }
      isListening[dependency] = true;
    }
  }
}

function isListeningToAllDependencies(registrationName, mountAt) {
  var isListening = getListeningForDocument(mountAt);
  var dependencies = registrationNameDependencies[registrationName];
  for (var i = 0; i < dependencies.length; i++) {
    var dependency = dependencies[i];
    if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
      return false;
    }
  }
  return true;
}

function getActiveElement(doc) {
  doc = doc || (typeof document !== 'undefined' ? document : undefined);
  if (typeof doc === 'undefined') {
    return null;
  }
  try {
    return doc.activeElement || doc.body;
  } catch (e) {
    return doc.body;
  }
}

/**
 * Given any node return the first leaf node without children.
 *
 * @param {DOMElement|DOMTextNode} node
 * @return {DOMElement|DOMTextNode}
 */
function getLeafNode(node) {
  while (node && node.firstChild) {
    node = node.firstChild;
  }
  return node;
}

/**
 * Get the next sibling within a container. This will walk up the
 * DOM if a node's siblings have been exhausted.
 *
 * @param {DOMElement|DOMTextNode} node
 * @return {?DOMElement|DOMTextNode}
 */
function getSiblingNode(node) {
  while (node) {
    if (node.nextSibling) {
      return node.nextSibling;
    }
    node = node.parentNode;
  }
}

/**
 * Get object describing the nodes which contain characters at offset.
 *
 * @param {DOMElement|DOMTextNode} root
 * @param {number} offset
 * @return {?object}
 */
function getNodeForCharacterOffset(root, offset) {
  var node = getLeafNode(root);
  var nodeStart = 0;
  var nodeEnd = 0;

  while (node) {
    if (node.nodeType === TEXT_NODE) {
      nodeEnd = nodeStart + node.textContent.length;

      if (nodeStart <= offset && nodeEnd >= offset) {
        return {
          node: node,
          offset: offset - nodeStart
        };
      }

      nodeStart = nodeEnd;
    }

    node = getLeafNode(getSiblingNode(node));
  }
}

/**
 * @param {DOMElement} outerNode
 * @return {?object}
 */
function getOffsets(outerNode) {
  var ownerDocument = outerNode.ownerDocument;

  var win = ownerDocument && ownerDocument.defaultView || window;
  var selection = win.getSelection && win.getSelection();

  if (!selection || selection.rangeCount === 0) {
    return null;
  }

  var anchorNode = selection.anchorNode,
      anchorOffset = selection.anchorOffset,
      focusNode = selection.focusNode,
      focusOffset = selection.focusOffset;

  // In Firefox, anchorNode and focusNode can be "anonymous divs", e.g. the
  // up/down buttons on an <input type="number">. Anonymous divs do not seem to
  // expose properties, triggering a "Permission denied error" if any of its
  // properties are accessed. The only seemingly possible way to avoid erroring
  // is to access a property that typically works for non-anonymous divs and
  // catch any error that may otherwise arise. See
  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427

  try {
    /* eslint-disable no-unused-expressions */
    anchorNode.nodeType;
    focusNode.nodeType;
    /* eslint-enable no-unused-expressions */
  } catch (e) {
    return null;
  }

  return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);
}

/**
 * Returns {start, end} where `start` is the character/codepoint index of
 * (anchorNode, anchorOffset) within the textContent of `outerNode`, and
 * `end` is the index of (focusNode, focusOffset).
 *
 * Returns null if you pass in garbage input but we should probably just crash.
 *
 * Exported only for testing.
 */
function getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {
  var length = 0;
  var start = -1;
  var end = -1;
  var indexWithinAnchor = 0;
  var indexWithinFocus = 0;
  var node = outerNode;
  var parentNode = null;

  outer: while (true) {
    var next = null;

    while (true) {
      if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {
        start = length + anchorOffset;
      }
      if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {
        end = length + focusOffset;
      }

      if (node.nodeType === TEXT_NODE) {
        length += node.nodeValue.length;
      }

      if ((next = node.firstChild) === null) {
        break;
      }
      // Moving from `node` to its first child `next`.
      parentNode = node;
      node = next;
    }

    while (true) {
      if (node === outerNode) {
        // If `outerNode` has children, this is always the second time visiting
        // it. If it has no children, this is still the first loop, and the only
        // valid selection is anchorNode and focusNode both equal to this node
        // and both offsets 0, in which case we will have handled above.
        break outer;
      }
      if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {
        start = length;
      }
      if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {
        end = length;
      }
      if ((next = node.nextSibling) !== null) {
        break;
      }
      node = parentNode;
      parentNode = node.parentNode;
    }

    // Moving from `node` to its next sibling `next`.
    node = next;
  }

  if (start === -1 || end === -1) {
    // This should never happen. (Would happen if the anchor/focus nodes aren't
    // actually inside the passed-in node.)
    return null;
  }

  return {
    start: start,
    end: end
  };
}

/**
 * In modern non-IE browsers, we can support both forward and backward
 * selections.
 *
 * Note: IE10+ supports the Selection object, but it does not support
 * the `extend` method, which means that even in modern IE, it's not possible
 * to programmatically create a backward selection. Thus, for all IE
 * versions, we use the old IE API to create our selections.
 *
 * @param {DOMElement|DOMTextNode} node
 * @param {object} offsets
 */
function setOffsets(node, offsets) {
  var doc = node.ownerDocument || document;
  var win = doc && doc.defaultView || window;

  // Edge fails with "Object expected" in some scenarios.
  // (For instance: TinyMCE editor used in a list component that supports pasting to add more,
  // fails when pasting 100+ items)
  if (!win.getSelection) {
    return;
  }

  var selection = win.getSelection();
  var length = node.textContent.length;
  var start = Math.min(offsets.start, length);
  var end = offsets.end === undefined ? start : Math.min(offsets.end, length);

  // IE 11 uses modern selection, but doesn't support the extend method.
  // Flip backward selections, so we can set with a single range.
  if (!selection.extend && start > end) {
    var temp = end;
    end = start;
    start = temp;
  }

  var startMarker = getNodeForCharacterOffset(node, start);
  var endMarker = getNodeForCharacterOffset(node, end);

  if (startMarker && endMarker) {
    if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {
      return;
    }
    var range = doc.createRange();
    range.setStart(startMarker.node, startMarker.offset);
    selection.removeAllRanges();

    if (start > end) {
      selection.addRange(range);
      selection.extend(endMarker.node, endMarker.offset);
    } else {
      range.setEnd(endMarker.node, endMarker.offset);
      selection.addRange(range);
    }
  }
}

function isTextNode(node) {
  return node && node.nodeType === TEXT_NODE;
}

function containsNode(outerNode, innerNode) {
  if (!outerNode || !innerNode) {
    return false;
  } else if (outerNode === innerNode) {
    return true;
  } else if (isTextNode(outerNode)) {
    return false;
  } else if (isTextNode(innerNode)) {
    return containsNode(outerNode, innerNode.parentNode);
  } else if ('contains' in outerNode) {
    return outerNode.contains(innerNode);
  } else if (outerNode.compareDocumentPosition) {
    return !!(outerNode.compareDocumentPosition(innerNode) & 16);
  } else {
    return false;
  }
}

function isInDocument(node) {
  return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);
}

function getActiveElementDeep() {
  var win = window;
  var element = getActiveElement();
  while (element instanceof win.HTMLIFrameElement) {
    // Accessing the contentDocument of a HTMLIframeElement can cause the browser
    // to throw, e.g. if it has a cross-origin src attribute
    try {
      win = element.contentDocument.defaultView;
    } catch (e) {
      return element;
    }
    element = getActiveElement(win.document);
  }
  return element;
}

/**
 * @ReactInputSelection: React input selection module. Based on Selection.js,
 * but modified to be suitable for react and has a couple of bug fixes (doesn't
 * assume buttons have range selections allowed).
 * Input selection module for React.
 */

/**
 * @hasSelectionCapabilities: we get the element types that support selection
 * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`
 * and `selectionEnd` rows.
 */
function hasSelectionCapabilities(elem) {
  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
  return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');
}

function getSelectionInformation() {
  var focusedElem = getActiveElementDeep();
  return {
    focusedElem: focusedElem,
    selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection$1(focusedElem) : null
  };
}

/**
 * @restoreSelection: If any selection information was potentially lost,
 * restore it. This is useful when performing operations that could remove dom
 * nodes and place them back in, resulting in focus being lost.
 */
function restoreSelection(priorSelectionInformation) {
  var curFocusedElem = getActiveElementDeep();
  var priorFocusedElem = priorSelectionInformation.focusedElem;
  var priorSelectionRange = priorSelectionInformation.selectionRange;
  if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {
    if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {
      setSelection(priorFocusedElem, priorSelectionRange);
    }

    // Focusing a node can change the scroll position, which is undesirable
    var ancestors = [];
    var ancestor = priorFocusedElem;
    while (ancestor = ancestor.parentNode) {
      if (ancestor.nodeType === ELEMENT_NODE) {
        ancestors.push({
          element: ancestor,
          left: ancestor.scrollLeft,
          top: ancestor.scrollTop
        });
      }
    }

    if (typeof priorFocusedElem.focus === 'function') {
      priorFocusedElem.focus();
    }

    for (var i = 0; i < ancestors.length; i++) {
      var info = ancestors[i];
      info.element.scrollLeft = info.left;
      info.element.scrollTop = info.top;
    }
  }
}

/**
 * @getSelection: Gets the selection bounds of a focused textarea, input or
 * contentEditable node.
 * -@input: Look up selection bounds of this input
 * -@return {start: selectionStart, end: selectionEnd}
 */
function getSelection$1(input) {
  var selection = void 0;

  if ('selectionStart' in input) {
    // Modern browser with input or textarea.
    selection = {
      start: input.selectionStart,
      end: input.selectionEnd
    };
  } else {
    // Content editable or old IE textarea.
    selection = getOffsets(input);
  }

  return selection || { start: 0, end: 0 };
}

/**
 * @setSelection: Sets the selection bounds of a textarea or input and focuses
 * the input.
 * -@input     Set selection bounds of this input or textarea
 * -@offsets   Object of same form that is returned from get*
 */
function setSelection(input, offsets) {
  var start = offsets.start,
      end = offsets.end;

  if (end === undefined) {
    end = start;
  }

  if ('selectionStart' in input) {
    input.selectionStart = start;
    input.selectionEnd = Math.min(end, input.value.length);
  } else {
    setOffsets(input, offsets);
  }
}

var skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;

var eventTypes$3 = {
  select: {
    phasedRegistrationNames: {
      bubbled: 'onSelect',
      captured: 'onSelectCapture'
    },
    dependencies: [TOP_BLUR, TOP_CONTEXT_MENU, TOP_DRAG_END, TOP_FOCUS, TOP_KEY_DOWN, TOP_KEY_UP, TOP_MOUSE_DOWN, TOP_MOUSE_UP, TOP_SELECTION_CHANGE]
  }
};

var activeElement$1 = null;
var activeElementInst$1 = null;
var lastSelection = null;
var mouseDown = false;

/**
 * Get an object which is a unique representation of the current selection.
 *
 * The return value will not be consistent across nodes or browsers, but
 * two identical selections on the same node will return identical objects.
 *
 * @param {DOMElement} node
 * @return {object}
 */
function getSelection(node) {
  if ('selectionStart' in node && hasSelectionCapabilities(node)) {
    return {
      start: node.selectionStart,
      end: node.selectionEnd
    };
  } else {
    var win = node.ownerDocument && node.ownerDocument.defaultView || window;
    var selection = win.getSelection();
    return {
      anchorNode: selection.anchorNode,
      anchorOffset: selection.anchorOffset,
      focusNode: selection.focusNode,
      focusOffset: selection.focusOffset
    };
  }
}

/**
 * Get document associated with the event target.
 *
 * @param {object} nativeEventTarget
 * @return {Document}
 */
function getEventTargetDocument(eventTarget) {
  return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;
}

/**
 * Poll selection to see whether it's changed.
 *
 * @param {object} nativeEvent
 * @param {object} nativeEventTarget
 * @return {?SyntheticEvent}
 */
function constructSelectEvent(nativeEvent, nativeEventTarget) {
  // Ensure we have the right element, and that the user is not dragging a
  // selection (this matches native `select` event behavior). In HTML5, select
  // fires only on input and textarea thus if there's no focused element we
  // won't dispatch.
  var doc = getEventTargetDocument(nativeEventTarget);

  if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {
    return null;
  }

  // Only fire when selection has actually changed.
  var currentSelection = getSelection(activeElement$1);
  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {
    lastSelection = currentSelection;

    var syntheticEvent = SyntheticEvent.getPooled(eventTypes$3.select, activeElementInst$1, nativeEvent, nativeEventTarget);

    syntheticEvent.type = 'select';
    syntheticEvent.target = activeElement$1;

    accumulateTwoPhaseDispatches(syntheticEvent);

    return syntheticEvent;
  }

  return null;
}

/**
 * This plugin creates an `onSelect` event that normalizes select events
 * across form elements.
 *
 * Supported elements are:
 * - input (see `isTextInputElement`)
 * - textarea
 * - contentEditable
 *
 * This differs from native browser implementations in the following ways:
 * - Fires on contentEditable fields as well as inputs.
 * - Fires for collapsed selection.
 * - Fires after user input.
 */
var SelectEventPlugin = {
  eventTypes: eventTypes$3,

  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
    var doc = getEventTargetDocument(nativeEventTarget);
    // Track whether all listeners exists for this plugin. If none exist, we do
    // not extract events. See #3639.
    if (!doc || !isListeningToAllDependencies('onSelect', doc)) {
      return null;
    }

    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;

    switch (topLevelType) {
      // Track the input node that has focus.
      case TOP_FOCUS:
        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {
          activeElement$1 = targetNode;
          activeElementInst$1 = targetInst;
          lastSelection = null;
        }
        break;
      case TOP_BLUR:
        activeElement$1 = null;
        activeElementInst$1 = null;
        lastSelection = null;
        break;
      // Don't fire the event while the user is dragging. This matches the
      // semantics of the native select event.
      case TOP_MOUSE_DOWN:
        mouseDown = true;
        break;
      case TOP_CONTEXT_MENU:
      case TOP_MOUSE_UP:
      case TOP_DRAG_END:
        mouseDown = false;
        return constructSelectEvent(nativeEvent, nativeEventTarget);
      // Chrome and IE fire non-standard event when selection is changed (and
      // sometimes when it hasn't). IE's event fires out of order with respect
      // to key and input events on deletion, so we discard it.
      //
      // Firefox doesn't support selectionchange, so check selection status
      // after each key entry. The selection changes after keydown and before
      // keyup, but we check on keydown as well in the case of holding down a
      // key, when multiple keydown events are fired but only one keyup is.
      // This is also our approach for IE handling, for the reason above.
      case TOP_SELECTION_CHANGE:
        if (skipSelectionChangeEvent) {
          break;
        }
      // falls through
      case TOP_KEY_DOWN:
      case TOP_KEY_UP:
        return constructSelectEvent(nativeEvent, nativeEventTarget);
    }

    return null;
  }
};

/**
 * Inject modules for resolving DOM hierarchy and plugin ordering.
 */
injection.injectEventPluginOrder(DOMEventPluginOrder);
setComponentTree(getFiberCurrentPropsFromNode$1, getInstanceFromNode$1, getNodeFromInstance$1);

/**
 * Some important event plugins included by default (without having to require
 * them).
 */
injection.injectEventPluginsByName({
  SimpleEventPlugin: SimpleEventPlugin,
  EnterLeaveEventPlugin: EnterLeaveEventPlugin,
  ChangeEventPlugin: ChangeEventPlugin,
  SelectEventPlugin: SelectEventPlugin,
  BeforeInputEventPlugin: BeforeInputEventPlugin
});

var didWarnSelectedSetOnOption = false;
var didWarnInvalidChild = false;

function flattenChildren(children) {
  var content = '';

  // Flatten children. We'll warn if they are invalid
  // during validateProps() which runs for hydration too.
  // Note that this would throw on non-element objects.
  // Elements are stringified (which is normally irrelevant
  // but matters for <fbt>).
  React.Children.forEach(children, function (child) {
    if (child == null) {
      return;
    }
    content += child;
    // Note: we don't warn about invalid children here.
    // Instead, this is done separately below so that
    // it happens during the hydration codepath too.
  });

  return content;
}

/**
 * Implements an <option> host component that warns when `selected` is set.
 */

function validateProps(element, props) {
  {
    // This mirrors the codepath above, but runs for hydration too.
    // Warn about invalid children here so that client and hydration are consistent.
    // TODO: this seems like it could cause a DEV-only throw for hydration
    // if children contains a non-element object. We should try to avoid that.
    if (typeof props.children === 'object' && props.children !== null) {
      React.Children.forEach(props.children, function (child) {
        if (child == null) {
          return;
        }
        if (typeof child === 'string' || typeof child === 'number') {
          return;
        }
        if (typeof child.type !== 'string') {
          return;
        }
        if (!didWarnInvalidChild) {
          didWarnInvalidChild = true;
          warning$1(false, 'Only strings and numbers are supported as <option> children.');
        }
      });
    }

    // TODO: Remove support for `selected` in <option>.
    if (props.selected != null && !didWarnSelectedSetOnOption) {
      warning$1(false, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');
      didWarnSelectedSetOnOption = true;
    }
  }
}

function postMountWrapper$1(element, props) {
  // value="" should make a value attribute (#6219)
  if (props.value != null) {
    element.setAttribute('value', toString(getToStringValue(props.value)));
  }
}

function getHostProps$1(element, props) {
  var hostProps = _assign({ children: undefined }, props);
  var content = flattenChildren(props.children);

  if (content) {
    hostProps.children = content;
  }

  return hostProps;
}

// TODO: direct imports like some-package/src/* are bad. Fix me.
var didWarnValueDefaultValue$1 = void 0;

{
  didWarnValueDefaultValue$1 = false;
}

function getDeclarationErrorAddendum() {
  var ownerName = getCurrentFiberOwnerNameInDevOrNull();
  if (ownerName) {
    return '\n\nCheck the render method of `' + ownerName + '`.';
  }
  return '';
}

var valuePropNames = ['value', 'defaultValue'];

/**
 * Validation function for `value` and `defaultValue`.
 */
function checkSelectPropTypes(props) {
  ReactControlledValuePropTypes.checkPropTypes('select', props);

  for (var i = 0; i < valuePropNames.length; i++) {
    var propName = valuePropNames[i];
    if (props[propName] == null) {
      continue;
    }
    var isArray = Array.isArray(props[propName]);
    if (props.multiple && !isArray) {
      warning$1(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());
    } else if (!props.multiple && isArray) {
      warning$1(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());
    }
  }
}

function updateOptions(node, multiple, propValue, setDefaultSelected) {
  var options = node.options;

  if (multiple) {
    var selectedValues = propValue;
    var selectedValue = {};
    for (var i = 0; i < selectedValues.length; i++) {
      // Prefix to avoid chaos with special keys.
      selectedValue['$' + selectedValues[i]] = true;
    }
    for (var _i = 0; _i < options.length; _i++) {
      var selected = selectedValue.hasOwnProperty('$' + options[_i].value);
      if (options[_i].selected !== selected) {
        options[_i].selected = selected;
      }
      if (selected && setDefaultSelected) {
        options[_i].defaultSelected = true;
      }
    }
  } else {
    // Do not set `select.value` as exact behavior isn't consistent across all
    // browsers for all cases.
    var _selectedValue = toString(getToStringValue(propValue));
    var defaultSelected = null;
    for (var _i2 = 0; _i2 < options.length; _i2++) {
      if (options[_i2].value === _selectedValue) {
        options[_i2].selected = true;
        if (setDefaultSelected) {
          options[_i2].defaultSelected = true;
        }
        return;
      }
      if (defaultSelected === null && !options[_i2].disabled) {
        defaultSelected = options[_i2];
      }
    }
    if (defaultSelected !== null) {
      defaultSelected.selected = true;
    }
  }
}

/**
 * Implements a <select> host component that allows optionally setting the
 * props `value` and `defaultValue`. If `multiple` is false, the prop must be a
 * stringable. If `multiple` is true, the prop must be an array of stringables.
 *
 * If `value` is not supplied (or null/undefined), user actions that change the
 * selected option will trigger updates to the rendered options.
 *
 * If it is supplied (and not null/undefined), the rendered options will not
 * update in response to user actions. Instead, the `value` prop must change in
 * order for the rendered options to update.
 *
 * If `defaultValue` is provided, any options with the supplied values will be
 * selected.
 */

function getHostProps$2(element, props) {
  return _assign({}, props, {
    value: undefined
  });
}

function initWrapperState$1(element, props) {
  var node = element;
  {
    checkSelectPropTypes(props);
  }

  node._wrapperState = {
    wasMultiple: !!props.multiple
  };

  {
    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {
      warning$1(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');
      didWarnValueDefaultValue$1 = true;
    }
  }
}

function postMountWrapper$2(element, props) {
  var node = element;
  node.multiple = !!props.multiple;
  var value = props.value;
  if (value != null) {
    updateOptions(node, !!props.multiple, value, false);
  } else if (props.defaultValue != null) {
    updateOptions(node, !!props.multiple, props.defaultValue, true);
  }
}

function postUpdateWrapper(element, props) {
  var node = element;
  var wasMultiple = node._wrapperState.wasMultiple;
  node._wrapperState.wasMultiple = !!props.multiple;

  var value = props.value;
  if (value != null) {
    updateOptions(node, !!props.multiple, value, false);
  } else if (wasMultiple !== !!props.multiple) {
    // For simplicity, reapply `defaultValue` if `multiple` is toggled.
    if (props.defaultValue != null) {
      updateOptions(node, !!props.multiple, props.defaultValue, true);
    } else {
      // Revert the select back to its default unselected state.
      updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);
    }
  }
}

function restoreControlledState$2(element, props) {
  var node = element;
  var value = props.value;

  if (value != null) {
    updateOptions(node, !!props.multiple, value, false);
  }
}

var didWarnValDefaultVal = false;

/**
 * Implements a <textarea> host component that allows setting `value`, and
 * `defaultValue`. This differs from the traditional DOM API because value is
 * usually set as PCDATA children.
 *
 * If `value` is not supplied (or null/undefined), user actions that affect the
 * value will trigger updates to the element.
 *
 * If `value` is supplied (and not null/undefined), the rendered element will
 * not trigger updates to the element. Instead, the `value` prop must change in
 * order for the rendered element to be updated.
 *
 * The rendered element will be initialized with an empty value, the prop
 * `defaultValue` if specified, or the children content (deprecated).
 */

function getHostProps$3(element, props) {
  var node = element;
  !(props.dangerouslySetInnerHTML == null) ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : void 0;

  // Always set children to the same thing. In IE9, the selection range will
  // get reset if `textContent` is mutated.  We could add a check in setTextContent
  // to only set the value if/when the value differs from the node value (which would
  // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this
  // solution. The value can be a boolean or object so that's why it's forced
  // to be a string.
  var hostProps = _assign({}, props, {
    value: undefined,
    defaultValue: undefined,
    children: toString(node._wrapperState.initialValue)
  });

  return hostProps;
}

function initWrapperState$2(element, props) {
  var node = element;
  {
    ReactControlledValuePropTypes.checkPropTypes('textarea', props);
    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {
      warning$1(false, '%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');
      didWarnValDefaultVal = true;
    }
  }

  var initialValue = props.value;

  // Only bother fetching default value if we're going to use it
  if (initialValue == null) {
    var defaultValue = props.defaultValue;
    // TODO (yungsters): Remove support for children content in <textarea>.
    var children = props.children;
    if (children != null) {
      {
        warning$1(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');
      }
      !(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;
      if (Array.isArray(children)) {
        !(children.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;
        children = children[0];
      }

      defaultValue = children;
    }
    if (defaultValue == null) {
      defaultValue = '';
    }
    initialValue = defaultValue;
  }

  node._wrapperState = {
    initialValue: getToStringValue(initialValue)
  };
}

function updateWrapper$1(element, props) {
  var node = element;
  var value = getToStringValue(props.value);
  var defaultValue = getToStringValue(props.defaultValue);
  if (value != null) {
    // Cast `value` to a string to ensure the value is set correctly. While
    // browsers typically do this as necessary, jsdom doesn't.
    var newValue = toString(value);
    // To avoid side effects (such as losing text selection), only set value if changed
    if (newValue !== node.value) {
      node.value = newValue;
    }
    if (props.defaultValue == null && node.defaultValue !== newValue) {
      node.defaultValue = newValue;
    }
  }
  if (defaultValue != null) {
    node.defaultValue = toString(defaultValue);
  }
}

function postMountWrapper$3(element, props) {
  var node = element;
  // This is in postMount because we need access to the DOM node, which is not
  // available until after the component has mounted.
  var textContent = node.textContent;

  // Only set node.value if textContent is equal to the expected
  // initial value. In IE10/IE11 there is a bug where the placeholder attribute
  // will populate textContent as well.
  // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/
  if (textContent === node._wrapperState.initialValue) {
    node.value = textContent;
  }
}

function restoreControlledState$3(element, props) {
  // DOM component is still mounted; update
  updateWrapper$1(element, props);
}

var HTML_NAMESPACE$1 = 'http://www.w3.org/1999/xhtml';
var MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';

var Namespaces = {
  html: HTML_NAMESPACE$1,
  mathml: MATH_NAMESPACE,
  svg: SVG_NAMESPACE
};

// Assumes there is no parent namespace.
function getIntrinsicNamespace(type) {
  switch (type) {
    case 'svg':
      return SVG_NAMESPACE;
    case 'math':
      return MATH_NAMESPACE;
    default:
      return HTML_NAMESPACE$1;
  }
}

function getChildNamespace(parentNamespace, type) {
  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE$1) {
    // No (or default) parent namespace: potential entry point.
    return getIntrinsicNamespace(type);
  }
  if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {
    // We're leaving SVG.
    return HTML_NAMESPACE$1;
  }
  // By default, pass namespace below.
  return parentNamespace;
}

/* globals MSApp */

/**
 * Create a function which has 'unsafe' privileges (required by windows8 apps)
 */
var createMicrosoftUnsafeLocalFunction = function (func) {
  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
    return function (arg0, arg1, arg2, arg3) {
      MSApp.execUnsafeLocalFunction(function () {
        return func(arg0, arg1, arg2, arg3);
      });
    };
  } else {
    return func;
  }
};

// SVG temp container for IE lacking innerHTML
var reusableSVGContainer = void 0;

/**
 * Set the innerHTML property of a node
 *
 * @param {DOMElement} node
 * @param {string} html
 * @internal
 */
var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {
  // IE does not have innerHTML for SVG nodes, so instead we inject the
  // new markup in a temp node and then move the child nodes across into
  // the target node

  if (node.namespaceURI === Namespaces.svg && !('innerHTML' in node)) {
    reusableSVGContainer = reusableSVGContainer || document.createElement('div');
    reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';
    var svgNode = reusableSVGContainer.firstChild;
    while (node.firstChild) {
      node.removeChild(node.firstChild);
    }
    while (svgNode.firstChild) {
      node.appendChild(svgNode.firstChild);
    }
  } else {
    node.innerHTML = html;
  }
});

/**
 * Set the textContent property of a node. For text updates, it's faster
 * to set the `nodeValue` of the Text node directly instead of using
 * `.textContent` which will remove the existing node and create a new one.
 *
 * @param {DOMElement} node
 * @param {string} text
 * @internal
 */
var setTextContent = function (node, text) {
  if (text) {
    var firstChild = node.firstChild;

    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {
      firstChild.nodeValue = text;
      return;
    }
  }
  node.textContent = text;
};

// List derived from Gecko source code:
// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js
var shorthandToLonghand = {
  animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],
  background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],
  backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],
  border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],
  borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],
  borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],
  borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],
  borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],
  borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],
  borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],
  borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],
  borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],
  borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],
  borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],
  borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],
  borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],
  borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],
  columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],
  columns: ['columnCount', 'columnWidth'],
  flex: ['flexBasis', 'flexGrow', 'flexShrink'],
  flexFlow: ['flexDirection', 'flexWrap'],
  font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],
  fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],
  gap: ['columnGap', 'rowGap'],
  grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],
  gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],
  gridColumn: ['gridColumnEnd', 'gridColumnStart'],
  gridColumnGap: ['columnGap'],
  gridGap: ['columnGap', 'rowGap'],
  gridRow: ['gridRowEnd', 'gridRowStart'],
  gridRowGap: ['rowGap'],
  gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],
  listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],
  margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],
  marker: ['markerEnd', 'markerMid', 'markerStart'],
  mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],
  maskPosition: ['maskPositionX', 'maskPositionY'],
  outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],
  overflow: ['overflowX', 'overflowY'],
  padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],
  placeContent: ['alignContent', 'justifyContent'],
  placeItems: ['alignItems', 'justifyItems'],
  placeSelf: ['alignSelf', 'justifySelf'],
  textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],
  textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],
  transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],
  wordWrap: ['overflowWrap']
};

/**
 * CSS properties which accept numbers but are not in units of "px".
 */
var isUnitlessNumber = {
  animationIterationCount: true,
  borderImageOutset: true,
  borderImageSlice: true,
  borderImageWidth: true,
  boxFlex: true,
  boxFlexGroup: true,
  boxOrdinalGroup: true,
  columnCount: true,
  columns: true,
  flex: true,
  flexGrow: true,
  flexPositive: true,
  flexShrink: true,
  flexNegative: true,
  flexOrder: true,
  gridArea: true,
  gridRow: true,
  gridRowEnd: true,
  gridRowSpan: true,
  gridRowStart: true,
  gridColumn: true,
  gridColumnEnd: true,
  gridColumnSpan: true,
  gridColumnStart: true,
  fontWeight: true,
  lineClamp: true,
  lineHeight: true,
  opacity: true,
  order: true,
  orphans: true,
  tabSize: true,
  widows: true,
  zIndex: true,
  zoom: true,

  // SVG-related properties
  fillOpacity: true,
  floodOpacity: true,
  stopOpacity: true,
  strokeDasharray: true,
  strokeDashoffset: true,
  strokeMiterlimit: true,
  strokeOpacity: true,
  strokeWidth: true
};

/**
 * @param {string} prefix vendor-specific prefix, eg: Webkit
 * @param {string} key style name, eg: transitionDuration
 * @return {string} style name prefixed with `prefix`, properly camelCased, eg:
 * WebkitTransitionDuration
 */
function prefixKey(prefix, key) {
  return prefix + key.charAt(0).toUpperCase() + key.substring(1);
}

/**
 * Support style names that may come passed in prefixed by adding permutations
 * of vendor prefixes.
 */
var prefixes = ['Webkit', 'ms', 'Moz', 'O'];

// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
// infinite loop, because it iterates over the newly added props too.
Object.keys(isUnitlessNumber).forEach(function (prop) {
  prefixes.forEach(function (prefix) {
    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
  });
});

/**
 * Convert a value into the proper css writable value. The style name `name`
 * should be logical (no hyphens), as specified
 * in `CSSProperty.isUnitlessNumber`.
 *
 * @param {string} name CSS property name such as `topMargin`.
 * @param {*} value CSS property value such as `10px`.
 * @return {string} Normalized style value with dimensions applied.
 */
function dangerousStyleValue(name, value, isCustomProperty) {
  // Note that we've removed escapeTextForBrowser() calls here since the
  // whole string will be escaped when the attribute is injected into
  // the markup. If you provide unsafe user data here they can inject
  // arbitrary CSS which may be problematic (I couldn't repro this):
  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/
  // This is not an XSS hole but instead a potential CSS injection issue
  // which has lead to a greater discussion about how we're going to
  // trust URLs moving forward. See #2115901

  var isEmpty = value == null || typeof value === 'boolean' || value === '';
  if (isEmpty) {
    return '';
  }

  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {
    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers
  }

  return ('' + value).trim();
}

var uppercasePattern = /([A-Z])/g;
var msPattern = /^ms-/;

/**
 * Hyphenates a camelcased CSS property name, for example:
 *
 *   > hyphenateStyleName('backgroundColor')
 *   < "background-color"
 *   > hyphenateStyleName('MozTransition')
 *   < "-moz-transition"
 *   > hyphenateStyleName('msTransition')
 *   < "-ms-transition"
 *
 * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix
 * is converted to `-ms-`.
 */
function hyphenateStyleName(name) {
  return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');
}

var warnValidStyle = function () {};

{
  // 'msTransform' is correct, but the other prefixes should be capitalized
  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;
  var msPattern$1 = /^-ms-/;
  var hyphenPattern = /-(.)/g;

  // style values shouldn't contain a semicolon
  var badStyleValueWithSemicolonPattern = /;\s*$/;

  var warnedStyleNames = {};
  var warnedStyleValues = {};
  var warnedForNaNValue = false;
  var warnedForInfinityValue = false;

  var camelize = function (string) {
    return string.replace(hyphenPattern, function (_, character) {
      return character.toUpperCase();
    });
  };

  var warnHyphenatedStyleName = function (name) {
    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
      return;
    }

    warnedStyleNames[name] = true;
    warning$1(false, 'Unsupported style property %s. Did you mean %s?', name,
    // As Andi Smith suggests
    // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
    // is converted to lowercase `ms`.
    camelize(name.replace(msPattern$1, 'ms-')));
  };

  var warnBadVendoredStyleName = function (name) {
    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
      return;
    }

    warnedStyleNames[name] = true;
    warning$1(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));
  };

  var warnStyleValueWithSemicolon = function (name, value) {
    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {
      return;
    }

    warnedStyleValues[value] = true;
    warning$1(false, "Style property values shouldn't contain a semicolon. " + 'Try "%s: %s" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));
  };

  var warnStyleValueIsNaN = function (name, value) {
    if (warnedForNaNValue) {
      return;
    }

    warnedForNaNValue = true;
    warning$1(false, '`NaN` is an invalid value for the `%s` css style property.', name);
  };

  var warnStyleValueIsInfinity = function (name, value) {
    if (warnedForInfinityValue) {
      return;
    }

    warnedForInfinityValue = true;
    warning$1(false, '`Infinity` is an invalid value for the `%s` css style property.', name);
  };

  warnValidStyle = function (name, value) {
    if (name.indexOf('-') > -1) {
      warnHyphenatedStyleName(name);
    } else if (badVendoredStyleNamePattern.test(name)) {
      warnBadVendoredStyleName(name);
    } else if (badStyleValueWithSemicolonPattern.test(value)) {
      warnStyleValueWithSemicolon(name, value);
    }

    if (typeof value === 'number') {
      if (isNaN(value)) {
        warnStyleValueIsNaN(name, value);
      } else if (!isFinite(value)) {
        warnStyleValueIsInfinity(name, value);
      }
    }
  };
}

var warnValidStyle$1 = warnValidStyle;

/**
 * Operations for dealing with CSS properties.
 */

/**
 * This creates a string that is expected to be equivalent to the style
 * attribute generated by server-side rendering. It by-passes warnings and
 * security checks so it's not safe to use this value for anything other than
 * comparison. It is only used in DEV for SSR validation.
 */
function createDangerousStringForStyles(styles) {
  {
    var serialized = '';
    var delimiter = '';
    for (var styleName in styles) {
      if (!styles.hasOwnProperty(styleName)) {
        continue;
      }
      var styleValue = styles[styleName];
      if (styleValue != null) {
        var isCustomProperty = styleName.indexOf('--') === 0;
        serialized += delimiter + hyphenateStyleName(styleName) + ':';
        serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);

        delimiter = ';';
      }
    }
    return serialized || null;
  }
}

/**
 * Sets the value for multiple styles on a node.  If a value is specified as
 * '' (empty string), the corresponding style property will be unset.
 *
 * @param {DOMElement} node
 * @param {object} styles
 */
function setValueForStyles(node, styles) {
  var style = node.style;
  for (var styleName in styles) {
    if (!styles.hasOwnProperty(styleName)) {
      continue;
    }
    var isCustomProperty = styleName.indexOf('--') === 0;
    {
      if (!isCustomProperty) {
        warnValidStyle$1(styleName, styles[styleName]);
      }
    }
    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);
    if (styleName === 'float') {
      styleName = 'cssFloat';
    }
    if (isCustomProperty) {
      style.setProperty(styleName, styleValue);
    } else {
      style[styleName] = styleValue;
    }
  }
}

function isValueEmpty(value) {
  return value == null || typeof value === 'boolean' || value === '';
}

/**
 * Given {color: 'red', overflow: 'hidden'} returns {
 *   color: 'color',
 *   overflowX: 'overflow',
 *   overflowY: 'overflow',
 * }. This can be read as "the overflowY property was set by the overflow
 * shorthand". That is, the values are the property that each was derived from.
 */
function expandShorthandMap(styles) {
  var expanded = {};
  for (var key in styles) {
    var longhands = shorthandToLonghand[key] || [key];
    for (var i = 0; i < longhands.length; i++) {
      expanded[longhands[i]] = key;
    }
  }
  return expanded;
}

/**
 * When mixing shorthand and longhand property names, we warn during updates if
 * we expect an incorrect result to occur. In particular, we warn for:
 *
 * Updating a shorthand property (longhand gets overwritten):
 *   {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}
 *   becomes .style.font = 'baz'
 * Removing a shorthand property (longhand gets lost too):
 *   {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}
 *   becomes .style.font = ''
 * Removing a longhand property (should revert to shorthand; doesn't):
 *   {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}
 *   becomes .style.fontVariant = ''
 */
function validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {
  if (!warnAboutShorthandPropertyCollision) {
    return;
  }

  if (!nextStyles) {
    return;
  }

  var expandedUpdates = expandShorthandMap(styleUpdates);
  var expandedStyles = expandShorthandMap(nextStyles);
  var warnedAbout = {};
  for (var key in expandedUpdates) {
    var originalKey = expandedUpdates[key];
    var correctOriginalKey = expandedStyles[key];
    if (correctOriginalKey && originalKey !== correctOriginalKey) {
      var warningKey = originalKey + ',' + correctOriginalKey;
      if (warnedAbout[warningKey]) {
        continue;
      }
      warnedAbout[warningKey] = true;
      warning$1(false, '%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + "avoid this, don't mix shorthand and non-shorthand properties " + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);
    }
  }
}

// For HTML, certain tags should omit their close tag. We keep a whitelist for
// those special-case tags.

var omittedCloseTags = {
  area: true,
  base: true,
  br: true,
  col: true,
  embed: true,
  hr: true,
  img: true,
  input: true,
  keygen: true,
  link: true,
  meta: true,
  param: true,
  source: true,
  track: true,
  wbr: true
  // NOTE: menuitem's close tag should be omitted, but that causes problems.
};

// For HTML, certain tags cannot have children. This has the same purpose as
// `omittedCloseTags` except that `menuitem` should still have its closing tag.

var voidElementTags = _assign({
  menuitem: true
}, omittedCloseTags);

// TODO: We can remove this if we add invariantWithStack()
// or add stack by default to invariants where possible.
var HTML$1 = '__html';

var ReactDebugCurrentFrame$2 = null;
{
  ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;
}

function assertValidProps(tag, props) {
  if (!props) {
    return;
  }
  // Note the use of `==` which checks for null or undefined.
  if (voidElementTags[tag]) {
    !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, ReactDebugCurrentFrame$2.getStackAddendum()) : void 0;
  }
  if (props.dangerouslySetInnerHTML != null) {
    !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;
    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML$1 in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;
  }
  {
    !(props.suppressContentEditableWarning || !props.contentEditable || props.children == null) ? warning$1(false, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;
  }
  !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', ReactDebugCurrentFrame$2.getStackAddendum()) : void 0;
}

function isCustomComponent(tagName, props) {
  if (tagName.indexOf('-') === -1) {
    return typeof props.is === 'string';
  }
  switch (tagName) {
    // These are reserved SVG and MathML elements.
    // We don't mind this whitelist too much because we expect it to never grow.
    // The alternative is to track the namespace in a few places which is convoluted.
    // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts
    case 'annotation-xml':
    case 'color-profile':
    case 'font-face':
    case 'font-face-src':
    case 'font-face-uri':
    case 'font-face-format':
    case 'font-face-name':
    case 'missing-glyph':
      return false;
    default:
      return true;
  }
}

// When adding attributes to the HTML or SVG whitelist, be sure to
// also add them to this module to ensure casing and incorrect name
// warnings.
var possibleStandardNames = {
  // HTML
  accept: 'accept',
  acceptcharset: 'acceptCharset',
  'accept-charset': 'acceptCharset',
  accesskey: 'accessKey',
  action: 'action',
  allowfullscreen: 'allowFullScreen',
  alt: 'alt',
  as: 'as',
  async: 'async',
  autocapitalize: 'autoCapitalize',
  autocomplete: 'autoComplete',
  autocorrect: 'autoCorrect',
  autofocus: 'autoFocus',
  autoplay: 'autoPlay',
  autosave: 'autoSave',
  capture: 'capture',
  cellpadding: 'cellPadding',
  cellspacing: 'cellSpacing',
  challenge: 'challenge',
  charset: 'charSet',
  checked: 'checked',
  children: 'children',
  cite: 'cite',
  class: 'className',
  classid: 'classID',
  classname: 'className',
  cols: 'cols',
  colspan: 'colSpan',
  content: 'content',
  contenteditable: 'contentEditable',
  contextmenu: 'contextMenu',
  controls: 'controls',
  controlslist: 'controlsList',
  coords: 'coords',
  crossorigin: 'crossOrigin',
  dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',
  data: 'data',
  datetime: 'dateTime',
  default: 'default',
  defaultchecked: 'defaultChecked',
  defaultvalue: 'defaultValue',
  defer: 'defer',
  dir: 'dir',
  disabled: 'disabled',
  download: 'download',
  draggable: 'draggable',
  enctype: 'encType',
  for: 'htmlFor',
  form: 'form',
  formmethod: 'formMethod',
  formaction: 'formAction',
  formenctype: 'formEncType',
  formnovalidate: 'formNoValidate',
  formtarget: 'formTarget',
  frameborder: 'frameBorder',
  headers: 'headers',
  height: 'height',
  hidden: 'hidden',
  high: 'high',
  href: 'href',
  hreflang: 'hrefLang',
  htmlfor: 'htmlFor',
  httpequiv: 'httpEquiv',
  'http-equiv': 'httpEquiv',
  icon: 'icon',
  id: 'id',
  innerhtml: 'innerHTML',
  inputmode: 'inputMode',
  integrity: 'integrity',
  is: 'is',
  itemid: 'itemID',
  itemprop: 'itemProp',
  itemref: 'itemRef',
  itemscope: 'itemScope',
  itemtype: 'itemType',
  keyparams: 'keyParams',
  keytype: 'keyType',
  kind: 'kind',
  label: 'label',
  lang: 'lang',
  list: 'list',
  loop: 'loop',
  low: 'low',
  manifest: 'manifest',
  marginwidth: 'marginWidth',
  marginheight: 'marginHeight',
  max: 'max',
  maxlength: 'maxLength',
  media: 'media',
  mediagroup: 'mediaGroup',
  method: 'method',
  min: 'min',
  minlength: 'minLength',
  multiple: 'multiple',
  muted: 'muted',
  name: 'name',
  nomodule: 'noModule',
  nonce: 'nonce',
  novalidate: 'noValidate',
  open: 'open',
  optimum: 'optimum',
  pattern: 'pattern',
  placeholder: 'placeholder',
  playsinline: 'playsInline',
  poster: 'poster',
  preload: 'preload',
  profile: 'profile',
  radiogroup: 'radioGroup',
  readonly: 'readOnly',
  referrerpolicy: 'referrerPolicy',
  rel: 'rel',
  required: 'required',
  reversed: 'reversed',
  role: 'role',
  rows: 'rows',
  rowspan: 'rowSpan',
  sandbox: 'sandbox',
  scope: 'scope',
  scoped: 'scoped',
  scrolling: 'scrolling',
  seamless: 'seamless',
  selected: 'selected',
  shape: 'shape',
  size: 'size',
  sizes: 'sizes',
  span: 'span',
  spellcheck: 'spellCheck',
  src: 'src',
  srcdoc: 'srcDoc',
  srclang: 'srcLang',
  srcset: 'srcSet',
  start: 'start',
  step: 'step',
  style: 'style',
  summary: 'summary',
  tabindex: 'tabIndex',
  target: 'target',
  title: 'title',
  type: 'type',
  usemap: 'useMap',
  value: 'value',
  width: 'width',
  wmode: 'wmode',
  wrap: 'wrap',

  // SVG
  about: 'about',
  accentheight: 'accentHeight',
  'accent-height': 'accentHeight',
  accumulate: 'accumulate',
  additive: 'additive',
  alignmentbaseline: 'alignmentBaseline',
  'alignment-baseline': 'alignmentBaseline',
  allowreorder: 'allowReorder',
  alphabetic: 'alphabetic',
  amplitude: 'amplitude',
  arabicform: 'arabicForm',
  'arabic-form': 'arabicForm',
  ascent: 'ascent',
  attributename: 'attributeName',
  attributetype: 'attributeType',
  autoreverse: 'autoReverse',
  azimuth: 'azimuth',
  basefrequency: 'baseFrequency',
  baselineshift: 'baselineShift',
  'baseline-shift': 'baselineShift',
  baseprofile: 'baseProfile',
  bbox: 'bbox',
  begin: 'begin',
  bias: 'bias',
  by: 'by',
  calcmode: 'calcMode',
  capheight: 'capHeight',
  'cap-height': 'capHeight',
  clip: 'clip',
  clippath: 'clipPath',
  'clip-path': 'clipPath',
  clippathunits: 'clipPathUnits',
  cliprule: 'clipRule',
  'clip-rule': 'clipRule',
  color: 'color',
  colorinterpolation: 'colorInterpolation',
  'color-interpolation': 'colorInterpolation',
  colorinterpolationfilters: 'colorInterpolationFilters',
  'color-interpolation-filters': 'colorInterpolationFilters',
  colorprofile: 'colorProfile',
  'color-profile': 'colorProfile',
  colorrendering: 'colorRendering',
  'color-rendering': 'colorRendering',
  contentscripttype: 'contentScriptType',
  contentstyletype: 'contentStyleType',
  cursor: 'cursor',
  cx: 'cx',
  cy: 'cy',
  d: 'd',
  datatype: 'datatype',
  decelerate: 'decelerate',
  descent: 'descent',
  diffuseconstant: 'diffuseConstant',
  direction: 'direction',
  display: 'display',
  divisor: 'divisor',
  dominantbaseline: 'dominantBaseline',
  'dominant-baseline': 'dominantBaseline',
  dur: 'dur',
  dx: 'dx',
  dy: 'dy',
  edgemode: 'edgeMode',
  elevation: 'elevation',
  enablebackground: 'enableBackground',
  'enable-background': 'enableBackground',
  end: 'end',
  exponent: 'exponent',
  externalresourcesrequired: 'externalResourcesRequired',
  fill: 'fill',
  fillopacity: 'fillOpacity',
  'fill-opacity': 'fillOpacity',
  fillrule: 'fillRule',
  'fill-rule': 'fillRule',
  filter: 'filter',
  filterres: 'filterRes',
  filterunits: 'filterUnits',
  floodopacity: 'floodOpacity',
  'flood-opacity': 'floodOpacity',
  floodcolor: 'floodColor',
  'flood-color': 'floodColor',
  focusable: 'focusable',
  fontfamily: 'fontFamily',
  'font-family': 'fontFamily',
  fontsize: 'fontSize',
  'font-size': 'fontSize',
  fontsizeadjust: 'fontSizeAdjust',
  'font-size-adjust': 'fontSizeAdjust',
  fontstretch: 'fontStretch',
  'font-stretch': 'fontStretch',
  fontstyle: 'fontStyle',
  'font-style': 'fontStyle',
  fontvariant: 'fontVariant',
  'font-variant': 'fontVariant',
  fontweight: 'fontWeight',
  'font-weight': 'fontWeight',
  format: 'format',
  from: 'from',
  fx: 'fx',
  fy: 'fy',
  g1: 'g1',
  g2: 'g2',
  glyphname: 'glyphName',
  'glyph-name': 'glyphName',
  glyphorientationhorizontal: 'glyphOrientationHorizontal',
  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
  glyphorientationvertical: 'glyphOrientationVertical',
  'glyph-orientation-vertical': 'glyphOrientationVertical',
  glyphref: 'glyphRef',
  gradienttransform: 'gradientTransform',
  gradientunits: 'gradientUnits',
  hanging: 'hanging',
  horizadvx: 'horizAdvX',
  'horiz-adv-x': 'horizAdvX',
  horizoriginx: 'horizOriginX',
  'horiz-origin-x': 'horizOriginX',
  ideographic: 'ideographic',
  imagerendering: 'imageRendering',
  'image-rendering': 'imageRendering',
  in2: 'in2',
  in: 'in',
  inlist: 'inlist',
  intercept: 'intercept',
  k1: 'k1',
  k2: 'k2',
  k3: 'k3',
  k4: 'k4',
  k: 'k',
  kernelmatrix: 'kernelMatrix',
  kernelunitlength: 'kernelUnitLength',
  kerning: 'kerning',
  keypoints: 'keyPoints',
  keysplines: 'keySplines',
  keytimes: 'keyTimes',
  lengthadjust: 'lengthAdjust',
  letterspacing: 'letterSpacing',
  'letter-spacing': 'letterSpacing',
  lightingcolor: 'lightingColor',
  'lighting-color': 'lightingColor',
  limitingconeangle: 'limitingConeAngle',
  local: 'local',
  markerend: 'markerEnd',
  'marker-end': 'markerEnd',
  markerheight: 'markerHeight',
  markermid: 'markerMid',
  'marker-mid': 'markerMid',
  markerstart: 'markerStart',
  'marker-start': 'markerStart',
  markerunits: 'markerUnits',
  markerwidth: 'markerWidth',
  mask: 'mask',
  maskcontentunits: 'maskContentUnits',
  maskunits: 'maskUnits',
  mathematical: 'mathematical',
  mode: 'mode',
  numoctaves: 'numOctaves',
  offset: 'offset',
  opacity: 'opacity',
  operator: 'operator',
  order: 'order',
  orient: 'orient',
  orientation: 'orientation',
  origin: 'origin',
  overflow: 'overflow',
  overlineposition: 'overlinePosition',
  'overline-position': 'overlinePosition',
  overlinethickness: 'overlineThickness',
  'overline-thickness': 'overlineThickness',
  paintorder: 'paintOrder',
  'paint-order': 'paintOrder',
  panose1: 'panose1',
  'panose-1': 'panose1',
  pathlength: 'pathLength',
  patterncontentunits: 'patternContentUnits',
  patterntransform: 'patternTransform',
  patternunits: 'patternUnits',
  pointerevents: 'pointerEvents',
  'pointer-events': 'pointerEvents',
  points: 'points',
  pointsatx: 'pointsAtX',
  pointsaty: 'pointsAtY',
  pointsatz: 'pointsAtZ',
  prefix: 'prefix',
  preservealpha: 'preserveAlpha',
  preserveaspectratio: 'preserveAspectRatio',
  primitiveunits: 'primitiveUnits',
  property: 'property',
  r: 'r',
  radius: 'radius',
  refx: 'refX',
  refy: 'refY',
  renderingintent: 'renderingIntent',
  'rendering-intent': 'renderingIntent',
  repeatcount: 'repeatCount',
  repeatdur: 'repeatDur',
  requiredextensions: 'requiredExtensions',
  requiredfeatures: 'requiredFeatures',
  resource: 'resource',
  restart: 'restart',
  result: 'result',
  results: 'results',
  rotate: 'rotate',
  rx: 'rx',
  ry: 'ry',
  scale: 'scale',
  security: 'security',
  seed: 'seed',
  shaperendering: 'shapeRendering',
  'shape-rendering': 'shapeRendering',
  slope: 'slope',
  spacing: 'spacing',
  specularconstant: 'specularConstant',
  specularexponent: 'specularExponent',
  speed: 'speed',
  spreadmethod: 'spreadMethod',
  startoffset: 'startOffset',
  stddeviation: 'stdDeviation',
  stemh: 'stemh',
  stemv: 'stemv',
  stitchtiles: 'stitchTiles',
  stopcolor: 'stopColor',
  'stop-color': 'stopColor',
  stopopacity: 'stopOpacity',
  'stop-opacity': 'stopOpacity',
  strikethroughposition: 'strikethroughPosition',
  'strikethrough-position': 'strikethroughPosition',
  strikethroughthickness: 'strikethroughThickness',
  'strikethrough-thickness': 'strikethroughThickness',
  string: 'string',
  stroke: 'stroke',
  strokedasharray: 'strokeDasharray',
  'stroke-dasharray': 'strokeDasharray',
  strokedashoffset: 'strokeDashoffset',
  'stroke-dashoffset': 'strokeDashoffset',
  strokelinecap: 'strokeLinecap',
  'stroke-linecap': 'strokeLinecap',
  strokelinejoin: 'strokeLinejoin',
  'stroke-linejoin': 'strokeLinejoin',
  strokemiterlimit: 'strokeMiterlimit',
  'stroke-miterlimit': 'strokeMiterlimit',
  strokewidth: 'strokeWidth',
  'stroke-width': 'strokeWidth',
  strokeopacity: 'strokeOpacity',
  'stroke-opacity': 'strokeOpacity',
  suppresscontenteditablewarning: 'suppressContentEditableWarning',
  suppresshydrationwarning: 'suppressHydrationWarning',
  surfacescale: 'surfaceScale',
  systemlanguage: 'systemLanguage',
  tablevalues: 'tableValues',
  targetx: 'targetX',
  targety: 'targetY',
  textanchor: 'textAnchor',
  'text-anchor': 'textAnchor',
  textdecoration: 'textDecoration',
  'text-decoration': 'textDecoration',
  textlength: 'textLength',
  textrendering: 'textRendering',
  'text-rendering': 'textRendering',
  to: 'to',
  transform: 'transform',
  typeof: 'typeof',
  u1: 'u1',
  u2: 'u2',
  underlineposition: 'underlinePosition',
  'underline-position': 'underlinePosition',
  underlinethickness: 'underlineThickness',
  'underline-thickness': 'underlineThickness',
  unicode: 'unicode',
  unicodebidi: 'unicodeBidi',
  'unicode-bidi': 'unicodeBidi',
  unicoderange: 'unicodeRange',
  'unicode-range': 'unicodeRange',
  unitsperem: 'unitsPerEm',
  'units-per-em': 'unitsPerEm',
  unselectable: 'unselectable',
  valphabetic: 'vAlphabetic',
  'v-alphabetic': 'vAlphabetic',
  values: 'values',
  vectoreffect: 'vectorEffect',
  'vector-effect': 'vectorEffect',
  version: 'version',
  vertadvy: 'vertAdvY',
  'vert-adv-y': 'vertAdvY',
  vertoriginx: 'vertOriginX',
  'vert-origin-x': 'vertOriginX',
  vertoriginy: 'vertOriginY',
  'vert-origin-y': 'vertOriginY',
  vhanging: 'vHanging',
  'v-hanging': 'vHanging',
  videographic: 'vIdeographic',
  'v-ideographic': 'vIdeographic',
  viewbox: 'viewBox',
  viewtarget: 'viewTarget',
  visibility: 'visibility',
  vmathematical: 'vMathematical',
  'v-mathematical': 'vMathematical',
  vocab: 'vocab',
  widths: 'widths',
  wordspacing: 'wordSpacing',
  'word-spacing': 'wordSpacing',
  writingmode: 'writingMode',
  'writing-mode': 'writingMode',
  x1: 'x1',
  x2: 'x2',
  x: 'x',
  xchannelselector: 'xChannelSelector',
  xheight: 'xHeight',
  'x-height': 'xHeight',
  xlinkactuate: 'xlinkActuate',
  'xlink:actuate': 'xlinkActuate',
  xlinkarcrole: 'xlinkArcrole',
  'xlink:arcrole': 'xlinkArcrole',
  xlinkhref: 'xlinkHref',
  'xlink:href': 'xlinkHref',
  xlinkrole: 'xlinkRole',
  'xlink:role': 'xlinkRole',
  xlinkshow: 'xlinkShow',
  'xlink:show': 'xlinkShow',
  xlinktitle: 'xlinkTitle',
  'xlink:title': 'xlinkTitle',
  xlinktype: 'xlinkType',
  'xlink:type': 'xlinkType',
  xmlbase: 'xmlBase',
  'xml:base': 'xmlBase',
  xmllang: 'xmlLang',
  'xml:lang': 'xmlLang',
  xmlns: 'xmlns',
  'xml:space': 'xmlSpace',
  xmlnsxlink: 'xmlnsXlink',
  'xmlns:xlink': 'xmlnsXlink',
  xmlspace: 'xmlSpace',
  y1: 'y1',
  y2: 'y2',
  y: 'y',
  ychannelselector: 'yChannelSelector',
  z: 'z',
  zoomandpan: 'zoomAndPan'
};

var ariaProperties = {
  'aria-current': 0, // state
  'aria-details': 0,
  'aria-disabled': 0, // state
  'aria-hidden': 0, // state
  'aria-invalid': 0, // state
  'aria-keyshortcuts': 0,
  'aria-label': 0,
  'aria-roledescription': 0,
  // Widget Attributes
  'aria-autocomplete': 0,
  'aria-checked': 0,
  'aria-expanded': 0,
  'aria-haspopup': 0,
  'aria-level': 0,
  'aria-modal': 0,
  'aria-multiline': 0,
  'aria-multiselectable': 0,
  'aria-orientation': 0,
  'aria-placeholder': 0,
  'aria-pressed': 0,
  'aria-readonly': 0,
  'aria-required': 0,
  'aria-selected': 0,
  'aria-sort': 0,
  'aria-valuemax': 0,
  'aria-valuemin': 0,
  'aria-valuenow': 0,
  'aria-valuetext': 0,
  // Live Region Attributes
  'aria-atomic': 0,
  'aria-busy': 0,
  'aria-live': 0,
  'aria-relevant': 0,
  // Drag-and-Drop Attributes
  'aria-dropeffect': 0,
  'aria-grabbed': 0,
  // Relationship Attributes
  'aria-activedescendant': 0,
  'aria-colcount': 0,
  'aria-colindex': 0,
  'aria-colspan': 0,
  'aria-controls': 0,
  'aria-describedby': 0,
  'aria-errormessage': 0,
  'aria-flowto': 0,
  'aria-labelledby': 0,
  'aria-owns': 0,
  'aria-posinset': 0,
  'aria-rowcount': 0,
  'aria-rowindex': 0,
  'aria-rowspan': 0,
  'aria-setsize': 0
};

var warnedProperties = {};
var rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');
var rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');

var hasOwnProperty$2 = Object.prototype.hasOwnProperty;

function validateProperty(tagName, name) {
  if (hasOwnProperty$2.call(warnedProperties, name) && warnedProperties[name]) {
    return true;
  }

  if (rARIACamel.test(name)) {
    var ariaName = 'aria-' + name.slice(4).toLowerCase();
    var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;

    // If this is an aria-* attribute, but is not listed in the known DOM
    // DOM properties, then it is an invalid aria-* attribute.
    if (correctName == null) {
      warning$1(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);
      warnedProperties[name] = true;
      return true;
    }
    // aria-* attributes should be lowercase; suggest the lowercase version.
    if (name !== correctName) {
      warning$1(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);
      warnedProperties[name] = true;
      return true;
    }
  }

  if (rARIA.test(name)) {
    var lowerCasedName = name.toLowerCase();
    var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;

    // If this is an aria-* attribute, but is not listed in the known DOM
    // DOM properties, then it is an invalid aria-* attribute.
    if (standardName == null) {
      warnedProperties[name] = true;
      return false;
    }
    // aria-* attributes should be lowercase; suggest the lowercase version.
    if (name !== standardName) {
      warning$1(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);
      warnedProperties[name] = true;
      return true;
    }
  }

  return true;
}

function warnInvalidARIAProps(type, props) {
  var invalidProps = [];

  for (var key in props) {
    var isValid = validateProperty(type, key);
    if (!isValid) {
      invalidProps.push(key);
    }
  }

  var unknownPropString = invalidProps.map(function (prop) {
    return '`' + prop + '`';
  }).join(', ');

  if (invalidProps.length === 1) {
    warning$1(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);
  } else if (invalidProps.length > 1) {
    warning$1(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);
  }
}

function validateProperties(type, props) {
  if (isCustomComponent(type, props)) {
    return;
  }
  warnInvalidARIAProps(type, props);
}

var didWarnValueNull = false;

function validateProperties$1(type, props) {
  if (type !== 'input' && type !== 'textarea' && type !== 'select') {
    return;
  }

  if (props != null && props.value === null && !didWarnValueNull) {
    didWarnValueNull = true;
    if (type === 'select' && props.multiple) {
      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);
    } else {
      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);
    }
  }
}

var validateProperty$1 = function () {};

{
  var warnedProperties$1 = {};
  var _hasOwnProperty = Object.prototype.hasOwnProperty;
  var EVENT_NAME_REGEX = /^on./;
  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;
  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');
  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');

  validateProperty$1 = function (tagName, name, value, canUseEventSystem) {
    if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {
      return true;
    }

    var lowerCasedName = name.toLowerCase();
    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {
      warning$1(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');
      warnedProperties$1[name] = true;
      return true;
    }

    // We can't rely on the event system being injected on the server.
    if (canUseEventSystem) {
      if (registrationNameModules.hasOwnProperty(name)) {
        return true;
      }
      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;
      if (registrationName != null) {
        warning$1(false, 'Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);
        warnedProperties$1[name] = true;
        return true;
      }
      if (EVENT_NAME_REGEX.test(name)) {
        warning$1(false, 'Unknown event handler property `%s`. It will be ignored.', name);
        warnedProperties$1[name] = true;
        return true;
      }
    } else if (EVENT_NAME_REGEX.test(name)) {
      // If no event plugins have been injected, we are in a server environment.
      // So we can't tell if the event name is correct for sure, but we can filter
      // out known bad ones like `onclick`. We can't suggest a specific replacement though.
      if (INVALID_EVENT_NAME_REGEX.test(name)) {
        warning$1(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);
      }
      warnedProperties$1[name] = true;
      return true;
    }

    // Let the ARIA attribute hook validate ARIA attributes
    if (rARIA$1.test(name) || rARIACamel$1.test(name)) {
      return true;
    }

    if (lowerCasedName === 'innerhtml') {
      warning$1(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');
      warnedProperties$1[name] = true;
      return true;
    }

    if (lowerCasedName === 'aria') {
      warning$1(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');
      warnedProperties$1[name] = true;
      return true;
    }

    if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {
      warning$1(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);
      warnedProperties$1[name] = true;
      return true;
    }

    if (typeof value === 'number' && isNaN(value)) {
      warning$1(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);
      warnedProperties$1[name] = true;
      return true;
    }

    var propertyInfo = getPropertyInfo(name);
    var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED;

    // Known attributes should match the casing specified in the property config.
    if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
      var standardName = possibleStandardNames[lowerCasedName];
      if (standardName !== name) {
        warning$1(false, 'Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);
        warnedProperties$1[name] = true;
        return true;
      }
    } else if (!isReserved && name !== lowerCasedName) {
      // Unknown attributes should have lowercase casing since that's how they
      // will be cased anyway with server rendering.
      warning$1(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);
      warnedProperties$1[name] = true;
      return true;
    }

    if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {
      if (value) {
        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\n\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s="%s" or %s={value.toString()}.', value, name, name, value, name);
      } else {
        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\n\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s="%s" or %s={value.toString()}.\n\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);
      }
      warnedProperties$1[name] = true;
      return true;
    }

    // Now that we've validated casing, do not validate
    // data types for reserved props
    if (isReserved) {
      return true;
    }

    // Warn when a known attribute is a bad type
    if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {
      warnedProperties$1[name] = true;
      return false;
    }

    // Warn when passing the strings 'false' or 'true' into a boolean prop
    if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {
      warning$1(false, 'Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string "false".', name, value);
      warnedProperties$1[name] = true;
      return true;
    }

    return true;
  };
}

var warnUnknownProperties = function (type, props, canUseEventSystem) {
  var unknownProps = [];
  for (var key in props) {
    var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);
    if (!isValid) {
      unknownProps.push(key);
    }
  }

  var unknownPropString = unknownProps.map(function (prop) {
    return '`' + prop + '`';
  }).join(', ');
  if (unknownProps.length === 1) {
    warning$1(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);
  } else if (unknownProps.length > 1) {
    warning$1(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);
  }
};

function validateProperties$2(type, props, canUseEventSystem) {
  if (isCustomComponent(type, props)) {
    return;
  }
  warnUnknownProperties(type, props, canUseEventSystem);
}

// TODO: direct imports like some-package/src/* are bad. Fix me.
var didWarnInvalidHydration = false;
var didWarnShadyDOM = false;

var DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';
var SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';
var SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';
var AUTOFOCUS = 'autoFocus';
var CHILDREN = 'children';
var STYLE$1 = 'style';
var HTML = '__html';

var HTML_NAMESPACE = Namespaces.html;


var warnedUnknownTags = void 0;
var suppressHydrationWarning = void 0;

var validatePropertiesInDevelopment = void 0;
var warnForTextDifference = void 0;
var warnForPropDifference = void 0;
var warnForExtraAttributes = void 0;
var warnForInvalidEventListener = void 0;
var canDiffStyleForHydrationWarning = void 0;

var normalizeMarkupForTextOrAttribute = void 0;
var normalizeHTML = void 0;

{
  warnedUnknownTags = {
    // Chrome is the only major browser not shipping <time>. But as of July
    // 2017 it intends to ship it due to widespread usage. We intentionally
    // *don't* warn for <time> even if it's unrecognized by Chrome because
    // it soon will be, and many apps have been using it anyway.
    time: true,
    // There are working polyfills for <dialog>. Let people use it.
    dialog: true,
    // Electron ships a custom <webview> tag to display external web content in
    // an isolated frame and process.
    // This tag is not present in non Electron environments such as JSDom which
    // is often used for testing purposes.
    // @see https://electronjs.org/docs/api/webview-tag
    webview: true
  };

  validatePropertiesInDevelopment = function (type, props) {
    validateProperties(type, props);
    validateProperties$1(type, props);
    validateProperties$2(type, props, /* canUseEventSystem */true);
  };

  // IE 11 parses & normalizes the style attribute as opposed to other
  // browsers. It adds spaces and sorts the properties in some
  // non-alphabetical order. Handling that would require sorting CSS
  // properties in the client & server versions or applying
  // `expectedStyle` to a temporary DOM node to read its `style` attribute
  // normalized. Since it only affects IE, we're skipping style warnings
  // in that browser completely in favor of doing all that work.
  // See https://github.com/facebook/react/issues/11807
  canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode;

  // HTML parsing normalizes CR and CRLF to LF.
  // It also can turn \u0000 into \uFFFD inside attributes.
  // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream
  // If we have a mismatch, it might be caused by that.
  // We will still patch up in this case but not fire the warning.
  var NORMALIZE_NEWLINES_REGEX = /\r\n?/g;
  var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g;

  normalizeMarkupForTextOrAttribute = function (markup) {
    var markupString = typeof markup === 'string' ? markup : '' + markup;
    return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');
  };

  warnForTextDifference = function (serverText, clientText) {
    if (didWarnInvalidHydration) {
      return;
    }
    var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);
    var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);
    if (normalizedServerText === normalizedClientText) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Text content did not match. Server: "%s" Client: "%s"', normalizedServerText, normalizedClientText);
  };

  warnForPropDifference = function (propName, serverValue, clientValue) {
    if (didWarnInvalidHydration) {
      return;
    }
    var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);
    var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);
    if (normalizedServerValue === normalizedClientValue) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));
  };

  warnForExtraAttributes = function (attributeNames) {
    if (didWarnInvalidHydration) {
      return;
    }
    didWarnInvalidHydration = true;
    var names = [];
    attributeNames.forEach(function (name) {
      names.push(name);
    });
    warningWithoutStack$1(false, 'Extra attributes from the server: %s', names);
  };

  warnForInvalidEventListener = function (registrationName, listener) {
    if (listener === false) {
      warning$1(false, 'Expected `%s` listener to be a function, instead got `false`.\n\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);
    } else {
      warning$1(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);
    }
  };

  // Parse the HTML and read it back to normalize the HTML string so that it
  // can be used for comparison.
  normalizeHTML = function (parent, html) {
    // We could have created a separate document here to avoid
    // re-initializing custom elements if they exist. But this breaks
    // how <noscript> is being handled. So we use the same document.
    // See the discussion in https://github.com/facebook/react/pull/11157.
    var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);
    testElement.innerHTML = html;
    return testElement.innerHTML;
  };
}

function ensureListeningTo(rootContainerElement, registrationName) {
  var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE;
  var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;
  listenTo(registrationName, doc);
}

function getOwnerDocumentFromRootContainer(rootContainerElement) {
  return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;
}

function noop() {}

function trapClickOnNonInteractiveElement(node) {
  // Mobile Safari does not fire properly bubble click events on
  // non-interactive elements, which means delegated click listeners do not
  // fire. The workaround for this bug involves attaching an empty click
  // listener on the target node.
  // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
  // Just set it using the onclick property so that we don't have to manage any
  // bookkeeping for it. Not sure if we need to clear it when the listener is
  // removed.
  // TODO: Only do this for the relevant Safaris maybe?
  node.onclick = noop;
}

function setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {
  for (var propKey in nextProps) {
    if (!nextProps.hasOwnProperty(propKey)) {
      continue;
    }
    var nextProp = nextProps[propKey];
    if (propKey === STYLE$1) {
      {
        if (nextProp) {
          // Freeze the next style object so that we can assume it won't be
          // mutated. We have already warned for this in the past.
          Object.freeze(nextProp);
        }
      }
      // Relies on `updateStylesByID` not mutating `styleUpdates`.
      setValueForStyles(domElement, nextProp);
    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
      var nextHtml = nextProp ? nextProp[HTML] : undefined;
      if (nextHtml != null) {
        setInnerHTML(domElement, nextHtml);
      }
    } else if (propKey === CHILDREN) {
      if (typeof nextProp === 'string') {
        // Avoid setting initial textContent when the text is empty. In IE11 setting
        // textContent on a <textarea> will cause the placeholder to not
        // show within the <textarea> until it has been focused and blurred again.
        // https://github.com/facebook/react/issues/6731#issuecomment-254874553
        var canSetTextContent = tag !== 'textarea' || nextProp !== '';
        if (canSetTextContent) {
          setTextContent(domElement, nextProp);
        }
      } else if (typeof nextProp === 'number') {
        setTextContent(domElement, '' + nextProp);
      }
    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {
      // Noop
    } else if (propKey === AUTOFOCUS) {
      // We polyfill it separately on the client during commit.
      // We could have excluded it in the property list instead of
      // adding a special case here, but then it wouldn't be emitted
      // on server rendering (but we *do* want to emit it in SSR).
    } else if (registrationNameModules.hasOwnProperty(propKey)) {
      if (nextProp != null) {
        if ( true && typeof nextProp !== 'function') {
          warnForInvalidEventListener(propKey, nextProp);
        }
        ensureListeningTo(rootContainerElement, propKey);
      }
    } else if (nextProp != null) {
      setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);
    }
  }
}

function updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {
  // TODO: Handle wasCustomComponentTag
  for (var i = 0; i < updatePayload.length; i += 2) {
    var propKey = updatePayload[i];
    var propValue = updatePayload[i + 1];
    if (propKey === STYLE$1) {
      setValueForStyles(domElement, propValue);
    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
      setInnerHTML(domElement, propValue);
    } else if (propKey === CHILDREN) {
      setTextContent(domElement, propValue);
    } else {
      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);
    }
  }
}

function createElement(type, props, rootContainerElement, parentNamespace) {
  var isCustomComponentTag = void 0;

  // We create tags in the namespace of their parent container, except HTML
  // tags get no namespace.
  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);
  var domElement = void 0;
  var namespaceURI = parentNamespace;
  if (namespaceURI === HTML_NAMESPACE) {
    namespaceURI = getIntrinsicNamespace(type);
  }
  if (namespaceURI === HTML_NAMESPACE) {
    {
      isCustomComponentTag = isCustomComponent(type, props);
      // Should this check be gated by parent namespace? Not sure we want to
      // allow <SVG> or <mATH>.
      !(isCustomComponentTag || type === type.toLowerCase()) ? warning$1(false, '<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type) : void 0;
    }

    if (type === 'script') {
      // Create the script via .innerHTML so its "parser-inserted" flag is
      // set to true and it does not execute
      var div = ownerDocument.createElement('div');
      div.innerHTML = '<script><' + '/script>'; // eslint-disable-line
      // This is guaranteed to yield a script element.
      var firstChild = div.firstChild;
      domElement = div.removeChild(firstChild);
    } else if (typeof props.is === 'string') {
      // $FlowIssue `createElement` should be updated for Web Components
      domElement = ownerDocument.createElement(type, { is: props.is });
    } else {
      // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.
      // See discussion in https://github.com/facebook/react/pull/6896
      // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240
      domElement = ownerDocument.createElement(type);
      // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`
      // attributes on `select`s needs to be added before `option`s are inserted.
      // This prevents:
      // - a bug where the `select` does not scroll to the correct option because singular
      //  `select` elements automatically pick the first item #13222
      // - a bug where the `select` set the first item as selected despite the `size` attribute #14239
      // See https://github.com/facebook/react/issues/13222
      // and https://github.com/facebook/react/issues/14239
      if (type === 'select') {
        var node = domElement;
        if (props.multiple) {
          node.multiple = true;
        } else if (props.size) {
          // Setting a size greater than 1 causes a select to behave like `multiple=true`, where
          // it is possible that no option is selected.
          //
          // This is only necessary when a select in "single selection mode".
          node.size = props.size;
        }
      }
    }
  } else {
    domElement = ownerDocument.createElementNS(namespaceURI, type);
  }

  {
    if (namespaceURI === HTML_NAMESPACE) {
      if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {
        warnedUnknownTags[type] = true;
        warning$1(false, 'The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);
      }
    }
  }

  return domElement;
}

function createTextNode(text, rootContainerElement) {
  return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);
}

function setInitialProperties(domElement, tag, rawProps, rootContainerElement) {
  var isCustomComponentTag = isCustomComponent(tag, rawProps);
  {
    validatePropertiesInDevelopment(tag, rawProps);
    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {
      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');
      didWarnShadyDOM = true;
    }
  }

  // TODO: Make sure that we check isMounted before firing any of these events.
  var props = void 0;
  switch (tag) {
    case 'iframe':
    case 'object':
      trapBubbledEvent(TOP_LOAD, domElement);
      props = rawProps;
      break;
    case 'video':
    case 'audio':
      // Create listener for each media event
      for (var i = 0; i < mediaEventTypes.length; i++) {
        trapBubbledEvent(mediaEventTypes[i], domElement);
      }
      props = rawProps;
      break;
    case 'source':
      trapBubbledEvent(TOP_ERROR, domElement);
      props = rawProps;
      break;
    case 'img':
    case 'image':
    case 'link':
      trapBubbledEvent(TOP_ERROR, domElement);
      trapBubbledEvent(TOP_LOAD, domElement);
      props = rawProps;
      break;
    case 'form':
      trapBubbledEvent(TOP_RESET, domElement);
      trapBubbledEvent(TOP_SUBMIT, domElement);
      props = rawProps;
      break;
    case 'details':
      trapBubbledEvent(TOP_TOGGLE, domElement);
      props = rawProps;
      break;
    case 'input':
      initWrapperState(domElement, rawProps);
      props = getHostProps(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
    case 'option':
      validateProps(domElement, rawProps);
      props = getHostProps$1(domElement, rawProps);
      break;
    case 'select':
      initWrapperState$1(domElement, rawProps);
      props = getHostProps$2(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
    case 'textarea':
      initWrapperState$2(domElement, rawProps);
      props = getHostProps$3(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
    default:
      props = rawProps;
  }

  assertValidProps(tag, props);

  setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);

  switch (tag) {
    case 'input':
      // TODO: Make sure we check if this is still unmounted or do any clean
      // up necessary since we never stop tracking anymore.
      track(domElement);
      postMountWrapper(domElement, rawProps, false);
      break;
    case 'textarea':
      // TODO: Make sure we check if this is still unmounted or do any clean
      // up necessary since we never stop tracking anymore.
      track(domElement);
      postMountWrapper$3(domElement, rawProps);
      break;
    case 'option':
      postMountWrapper$1(domElement, rawProps);
      break;
    case 'select':
      postMountWrapper$2(domElement, rawProps);
      break;
    default:
      if (typeof props.onClick === 'function') {
        // TODO: This cast may not be sound for SVG, MathML or custom elements.
        trapClickOnNonInteractiveElement(domElement);
      }
      break;
  }
}

// Calculate the diff between the two objects.
function diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {
  {
    validatePropertiesInDevelopment(tag, nextRawProps);
  }

  var updatePayload = null;

  var lastProps = void 0;
  var nextProps = void 0;
  switch (tag) {
    case 'input':
      lastProps = getHostProps(domElement, lastRawProps);
      nextProps = getHostProps(domElement, nextRawProps);
      updatePayload = [];
      break;
    case 'option':
      lastProps = getHostProps$1(domElement, lastRawProps);
      nextProps = getHostProps$1(domElement, nextRawProps);
      updatePayload = [];
      break;
    case 'select':
      lastProps = getHostProps$2(domElement, lastRawProps);
      nextProps = getHostProps$2(domElement, nextRawProps);
      updatePayload = [];
      break;
    case 'textarea':
      lastProps = getHostProps$3(domElement, lastRawProps);
      nextProps = getHostProps$3(domElement, nextRawProps);
      updatePayload = [];
      break;
    default:
      lastProps = lastRawProps;
      nextProps = nextRawProps;
      if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {
        // TODO: This cast may not be sound for SVG, MathML or custom elements.
        trapClickOnNonInteractiveElement(domElement);
      }
      break;
  }

  assertValidProps(tag, nextProps);

  var propKey = void 0;
  var styleName = void 0;
  var styleUpdates = null;
  for (propKey in lastProps) {
    if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {
      continue;
    }
    if (propKey === STYLE$1) {
      var lastStyle = lastProps[propKey];
      for (styleName in lastStyle) {
        if (lastStyle.hasOwnProperty(styleName)) {
          if (!styleUpdates) {
            styleUpdates = {};
          }
          styleUpdates[styleName] = '';
        }
      }
    } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {
      // Noop. This is handled by the clear text mechanism.
    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {
      // Noop
    } else if (propKey === AUTOFOCUS) {
      // Noop. It doesn't work on updates anyway.
    } else if (registrationNameModules.hasOwnProperty(propKey)) {
      // This is a special case. If any listener updates we need to ensure
      // that the "current" fiber pointer gets updated so we need a commit
      // to update this element.
      if (!updatePayload) {
        updatePayload = [];
      }
    } else {
      // For all other deleted properties we add it to the queue. We use
      // the whitelist in the commit phase instead.
      (updatePayload = updatePayload || []).push(propKey, null);
    }
  }
  for (propKey in nextProps) {
    var nextProp = nextProps[propKey];
    var lastProp = lastProps != null ? lastProps[propKey] : undefined;
    if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {
      continue;
    }
    if (propKey === STYLE$1) {
      {
        if (nextProp) {
          // Freeze the next style object so that we can assume it won't be
          // mutated. We have already warned for this in the past.
          Object.freeze(nextProp);
        }
      }
      if (lastProp) {
        // Unset styles on `lastProp` but not on `nextProp`.
        for (styleName in lastProp) {
          if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {
            if (!styleUpdates) {
              styleUpdates = {};
            }
            styleUpdates[styleName] = '';
          }
        }
        // Update styles that changed since `lastProp`.
        for (styleName in nextProp) {
          if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {
            if (!styleUpdates) {
              styleUpdates = {};
            }
            styleUpdates[styleName] = nextProp[styleName];
          }
        }
      } else {
        // Relies on `updateStylesByID` not mutating `styleUpdates`.
        if (!styleUpdates) {
          if (!updatePayload) {
            updatePayload = [];
          }
          updatePayload.push(propKey, styleUpdates);
        }
        styleUpdates = nextProp;
      }
    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
      var nextHtml = nextProp ? nextProp[HTML] : undefined;
      var lastHtml = lastProp ? lastProp[HTML] : undefined;
      if (nextHtml != null) {
        if (lastHtml !== nextHtml) {
          (updatePayload = updatePayload || []).push(propKey, '' + nextHtml);
        }
      } else {
        // TODO: It might be too late to clear this if we have children
        // inserted already.
      }
    } else if (propKey === CHILDREN) {
      if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {
        (updatePayload = updatePayload || []).push(propKey, '' + nextProp);
      }
    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {
      // Noop
    } else if (registrationNameModules.hasOwnProperty(propKey)) {
      if (nextProp != null) {
        // We eagerly listen to this even though we haven't committed yet.
        if ( true && typeof nextProp !== 'function') {
          warnForInvalidEventListener(propKey, nextProp);
        }
        ensureListeningTo(rootContainerElement, propKey);
      }
      if (!updatePayload && lastProp !== nextProp) {
        // This is a special case. If any listener updates we need to ensure
        // that the "current" props pointer gets updated so we need a commit
        // to update this element.
        updatePayload = [];
      }
    } else {
      // For any other property we always add it to the queue and then we
      // filter it out using the whitelist during the commit.
      (updatePayload = updatePayload || []).push(propKey, nextProp);
    }
  }
  if (styleUpdates) {
    {
      validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE$1]);
    }
    (updatePayload = updatePayload || []).push(STYLE$1, styleUpdates);
  }
  return updatePayload;
}

// Apply the diff.
function updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {
  // Update checked *before* name.
  // In the middle of an update, it is possible to have multiple checked.
  // When a checked radio tries to change name, browser makes another radio's checked false.
  if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {
    updateChecked(domElement, nextRawProps);
  }

  var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);
  var isCustomComponentTag = isCustomComponent(tag, nextRawProps);
  // Apply the diff.
  updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag);

  // TODO: Ensure that an update gets scheduled if any of the special props
  // changed.
  switch (tag) {
    case 'input':
      // Update the wrapper around inputs *after* updating props. This has to
      // happen after `updateDOMProperties`. Otherwise HTML5 input validations
      // raise warnings and prevent the new value from being assigned.
      updateWrapper(domElement, nextRawProps);
      break;
    case 'textarea':
      updateWrapper$1(domElement, nextRawProps);
      break;
    case 'select':
      // <select> value update needs to occur after <option> children
      // reconciliation
      postUpdateWrapper(domElement, nextRawProps);
      break;
  }
}

function getPossibleStandardName(propName) {
  {
    var lowerCasedName = propName.toLowerCase();
    if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {
      return null;
    }
    return possibleStandardNames[lowerCasedName] || null;
  }
  return null;
}

function diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {
  var isCustomComponentTag = void 0;
  var extraAttributeNames = void 0;

  {
    suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING$1] === true;
    isCustomComponentTag = isCustomComponent(tag, rawProps);
    validatePropertiesInDevelopment(tag, rawProps);
    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {
      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');
      didWarnShadyDOM = true;
    }
  }

  // TODO: Make sure that we check isMounted before firing any of these events.
  switch (tag) {
    case 'iframe':
    case 'object':
      trapBubbledEvent(TOP_LOAD, domElement);
      break;
    case 'video':
    case 'audio':
      // Create listener for each media event
      for (var i = 0; i < mediaEventTypes.length; i++) {
        trapBubbledEvent(mediaEventTypes[i], domElement);
      }
      break;
    case 'source':
      trapBubbledEvent(TOP_ERROR, domElement);
      break;
    case 'img':
    case 'image':
    case 'link':
      trapBubbledEvent(TOP_ERROR, domElement);
      trapBubbledEvent(TOP_LOAD, domElement);
      break;
    case 'form':
      trapBubbledEvent(TOP_RESET, domElement);
      trapBubbledEvent(TOP_SUBMIT, domElement);
      break;
    case 'details':
      trapBubbledEvent(TOP_TOGGLE, domElement);
      break;
    case 'input':
      initWrapperState(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
    case 'option':
      validateProps(domElement, rawProps);
      break;
    case 'select':
      initWrapperState$1(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
    case 'textarea':
      initWrapperState$2(domElement, rawProps);
      trapBubbledEvent(TOP_INVALID, domElement);
      // For controlled components we always need to ensure we're listening
      // to onChange. Even if there is no listener.
      ensureListeningTo(rootContainerElement, 'onChange');
      break;
  }

  assertValidProps(tag, rawProps);

  {
    extraAttributeNames = new Set();
    var attributes = domElement.attributes;
    for (var _i = 0; _i < attributes.length; _i++) {
      var name = attributes[_i].name.toLowerCase();
      switch (name) {
        // Built-in SSR attribute is whitelisted
        case 'data-reactroot':
          break;
        // Controlled attributes are not validated
        // TODO: Only ignore them on controlled tags.
        case 'value':
          break;
        case 'checked':
          break;
        case 'selected':
          break;
        default:
          // Intentionally use the original name.
          // See discussion in https://github.com/facebook/react/pull/10676.
          extraAttributeNames.add(attributes[_i].name);
      }
    }
  }

  var updatePayload = null;
  for (var propKey in rawProps) {
    if (!rawProps.hasOwnProperty(propKey)) {
      continue;
    }
    var nextProp = rawProps[propKey];
    if (propKey === CHILDREN) {
      // For text content children we compare against textContent. This
      // might match additional HTML that is hidden when we read it using
      // textContent. E.g. "foo" will match "f<span>oo</span>" but that still
      // satisfies our requirement. Our requirement is not to produce perfect
      // HTML and attributes. Ideally we should preserve structure but it's
      // ok not to if the visible content is still enough to indicate what
      // even listeners these nodes might be wired up to.
      // TODO: Warn if there is more than a single textNode as a child.
      // TODO: Should we use domElement.firstChild.nodeValue to compare?
      if (typeof nextProp === 'string') {
        if (domElement.textContent !== nextProp) {
          if ( true && !suppressHydrationWarning) {
            warnForTextDifference(domElement.textContent, nextProp);
          }
          updatePayload = [CHILDREN, nextProp];
        }
      } else if (typeof nextProp === 'number') {
        if (domElement.textContent !== '' + nextProp) {
          if ( true && !suppressHydrationWarning) {
            warnForTextDifference(domElement.textContent, nextProp);
          }
          updatePayload = [CHILDREN, '' + nextProp];
        }
      }
    } else if (registrationNameModules.hasOwnProperty(propKey)) {
      if (nextProp != null) {
        if ( true && typeof nextProp !== 'function') {
          warnForInvalidEventListener(propKey, nextProp);
        }
        ensureListeningTo(rootContainerElement, propKey);
      }
    } else if ( true &&
    // Convince Flow we've calculated it (it's DEV-only in this method.)
    typeof isCustomComponentTag === 'boolean') {
      // Validate that the properties correspond to their expected values.
      var serverValue = void 0;
      var propertyInfo = getPropertyInfo(propKey);
      if (suppressHydrationWarning) {
        // Don't bother comparing. We're ignoring all these warnings.
      } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1 ||
      // Controlled attributes are not validated
      // TODO: Only ignore them on controlled tags.
      propKey === 'value' || propKey === 'checked' || propKey === 'selected') {
        // Noop
      } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
        var serverHTML = domElement.innerHTML;
        var nextHtml = nextProp ? nextProp[HTML] : undefined;
        var expectedHTML = normalizeHTML(domElement, nextHtml != null ? nextHtml : '');
        if (expectedHTML !== serverHTML) {
          warnForPropDifference(propKey, serverHTML, expectedHTML);
        }
      } else if (propKey === STYLE$1) {
        // $FlowFixMe - Should be inferred as not undefined.
        extraAttributeNames.delete(propKey);

        if (canDiffStyleForHydrationWarning) {
          var expectedStyle = createDangerousStringForStyles(nextProp);
          serverValue = domElement.getAttribute('style');
          if (expectedStyle !== serverValue) {
            warnForPropDifference(propKey, serverValue, expectedStyle);
          }
        }
      } else if (isCustomComponentTag) {
        // $FlowFixMe - Should be inferred as not undefined.
        extraAttributeNames.delete(propKey.toLowerCase());
        serverValue = getValueForAttribute(domElement, propKey, nextProp);

        if (nextProp !== serverValue) {
          warnForPropDifference(propKey, serverValue, nextProp);
        }
      } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {
        var isMismatchDueToBadCasing = false;
        if (propertyInfo !== null) {
          // $FlowFixMe - Should be inferred as not undefined.
          extraAttributeNames.delete(propertyInfo.attributeName);
          serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);
        } else {
          var ownNamespace = parentNamespace;
          if (ownNamespace === HTML_NAMESPACE) {
            ownNamespace = getIntrinsicNamespace(tag);
          }
          if (ownNamespace === HTML_NAMESPACE) {
            // $FlowFixMe - Should be inferred as not undefined.
            extraAttributeNames.delete(propKey.toLowerCase());
          } else {
            var standardName = getPossibleStandardName(propKey);
            if (standardName !== null && standardName !== propKey) {
              // If an SVG prop is supplied with bad casing, it will
              // be successfully parsed from HTML, but will produce a mismatch
              // (and would be incorrectly rendered on the client).
              // However, we already warn about bad casing elsewhere.
              // So we'll skip the misleading extra mismatch warning in this case.
              isMismatchDueToBadCasing = true;
              // $FlowFixMe - Should be inferred as not undefined.
              extraAttributeNames.delete(standardName);
            }
            // $FlowFixMe - Should be inferred as not undefined.
            extraAttributeNames.delete(propKey);
          }
          serverValue = getValueForAttribute(domElement, propKey, nextProp);
        }

        if (nextProp !== serverValue && !isMismatchDueToBadCasing) {
          warnForPropDifference(propKey, serverValue, nextProp);
        }
      }
    }
  }

  {
    // $FlowFixMe - Should be inferred as not undefined.
    if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {
      // $FlowFixMe - Should be inferred as not undefined.
      warnForExtraAttributes(extraAttributeNames);
    }
  }

  switch (tag) {
    case 'input':
      // TODO: Make sure we check if this is still unmounted or do any clean
      // up necessary since we never stop tracking anymore.
      track(domElement);
      postMountWrapper(domElement, rawProps, true);
      break;
    case 'textarea':
      // TODO: Make sure we check if this is still unmounted or do any clean
      // up necessary since we never stop tracking anymore.
      track(domElement);
      postMountWrapper$3(domElement, rawProps);
      break;
    case 'select':
    case 'option':
      // For input and textarea we current always set the value property at
      // post mount to force it to diverge from attributes. However, for
      // option and select we don't quite do the same thing and select
      // is not resilient to the DOM state changing so we don't do that here.
      // TODO: Consider not doing this for input and textarea.
      break;
    default:
      if (typeof rawProps.onClick === 'function') {
        // TODO: This cast may not be sound for SVG, MathML or custom elements.
        trapClickOnNonInteractiveElement(domElement);
      }
      break;
  }

  return updatePayload;
}

function diffHydratedText(textNode, text) {
  var isDifferent = textNode.nodeValue !== text;
  return isDifferent;
}

function warnForUnmatchedText(textNode, text) {
  {
    warnForTextDifference(textNode.nodeValue, text);
  }
}

function warnForDeletedHydratableElement(parentNode, child) {
  {
    if (didWarnInvalidHydration) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());
  }
}

function warnForDeletedHydratableText(parentNode, child) {
  {
    if (didWarnInvalidHydration) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Did not expect server HTML to contain the text node "%s" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());
  }
}

function warnForInsertedHydratedElement(parentNode, tag, props) {
  {
    if (didWarnInvalidHydration) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());
  }
}

function warnForInsertedHydratedText(parentNode, text) {
  {
    if (text === '') {
      // We expect to insert empty text nodes since they're not represented in
      // the HTML.
      // TODO: Remove this special case if we can just avoid inserting empty
      // text nodes.
      return;
    }
    if (didWarnInvalidHydration) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack$1(false, 'Expected server HTML to contain a matching text node for "%s" in <%s>.', text, parentNode.nodeName.toLowerCase());
  }
}

function restoreControlledState$1(domElement, tag, props) {
  switch (tag) {
    case 'input':
      restoreControlledState(domElement, props);
      return;
    case 'textarea':
      restoreControlledState$3(domElement, props);
      return;
    case 'select':
      restoreControlledState$2(domElement, props);
      return;
  }
}

// TODO: direct imports like some-package/src/* are bad. Fix me.
var validateDOMNesting = function () {};
var updatedAncestorInfo = function () {};

{
  // This validation code was written based on the HTML5 parsing spec:
  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
  //
  // Note: this does not catch all invalid nesting, nor does it try to (as it's
  // not clear what practical benefit doing so provides); instead, we warn only
  // for cases where the parser will give a parse tree differing from what React
  // intended. For example, <b><div></div></b> is invalid but we don't warn
  // because it still parses correctly; we do warn for other cases like nested
  // <p> tags where the beginning of the second element implicitly closes the
  // first, causing a confusing mess.

  // https://html.spec.whatwg.org/multipage/syntax.html#special
  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];

  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',

  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point
  // TODO: Distinguish by namespace here -- for <title>, including it here
  // errs on the side of fewer warnings
  'foreignObject', 'desc', 'title'];

  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope
  var buttonScopeTags = inScopeTags.concat(['button']);

  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags
  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];

  var emptyAncestorInfo = {
    current: null,

    formTag: null,
    aTagInScope: null,
    buttonTagInScope: null,
    nobrTagInScope: null,
    pTagInButtonScope: null,

    listItemTagAutoclosing: null,
    dlItemTagAutoclosing: null
  };

  updatedAncestorInfo = function (oldInfo, tag) {
    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);
    var info = { tag: tag };

    if (inScopeTags.indexOf(tag) !== -1) {
      ancestorInfo.aTagInScope = null;
      ancestorInfo.buttonTagInScope = null;
      ancestorInfo.nobrTagInScope = null;
    }
    if (buttonScopeTags.indexOf(tag) !== -1) {
      ancestorInfo.pTagInButtonScope = null;
    }

    // See rules for 'li', 'dd', 'dt' start tags in
    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody
    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {
      ancestorInfo.listItemTagAutoclosing = null;
      ancestorInfo.dlItemTagAutoclosing = null;
    }

    ancestorInfo.current = info;

    if (tag === 'form') {
      ancestorInfo.formTag = info;
    }
    if (tag === 'a') {
      ancestorInfo.aTagInScope = info;
    }
    if (tag === 'button') {
      ancestorInfo.buttonTagInScope = info;
    }
    if (tag === 'nobr') {
      ancestorInfo.nobrTagInScope = info;
    }
    if (tag === 'p') {
      ancestorInfo.pTagInButtonScope = info;
    }
    if (tag === 'li') {
      ancestorInfo.listItemTagAutoclosing = info;
    }
    if (tag === 'dd' || tag === 'dt') {
      ancestorInfo.dlItemTagAutoclosing = info;
    }

    return ancestorInfo;
  };

  /**
   * Returns whether
   */
  var isTagValidWithParent = function (tag, parentTag) {
    // First, let's check if we're in an unusual parsing mode...
    switch (parentTag) {
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect
      case 'select':
        return tag === 'option' || tag === 'optgroup' || tag === '#text';
      case 'optgroup':
        return tag === 'option' || tag === '#text';
      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>
      // but
      case 'option':
        return tag === '#text';
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption
      // No special behavior since these rules fall back to "in body" mode for
      // all except special table nodes which cause bad parsing behavior anyway.

      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr
      case 'tr':
        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody
      case 'tbody':
      case 'thead':
      case 'tfoot':
        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup
      case 'colgroup':
        return tag === 'col' || tag === 'template';
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable
      case 'table':
        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead
      case 'head':
        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';
      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element
      case 'html':
        return tag === 'head' || tag === 'body';
      case '#document':
        return tag === 'html';
    }

    // Probably in the "in body" parsing mode, so we outlaw only tag combos
    // where the parsing rules cause implicit opens or closes to be added.
    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody
    switch (tag) {
      case 'h1':
      case 'h2':
      case 'h3':
      case 'h4':
      case 'h5':
      case 'h6':
        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';

      case 'rp':
      case 'rt':
        return impliedEndTags.indexOf(parentTag) === -1;

      case 'body':
      case 'caption':
      case 'col':
      case 'colgroup':
      case 'frame':
      case 'head':
      case 'html':
      case 'tbody':
      case 'td':
      case 'tfoot':
      case 'th':
      case 'thead':
      case 'tr':
        // These tags are only valid with a few parents that have special child
        // parsing rules -- if we're down here, then none of those matched and
        // so we allow it only if we don't know what the parent is, as all other
        // cases are invalid.
        return parentTag == null;
    }

    return true;
  };

  /**
   * Returns whether
   */
  var findInvalidAncestorForTag = function (tag, ancestorInfo) {
    switch (tag) {
      case 'address':
      case 'article':
      case 'aside':
      case 'blockquote':
      case 'center':
      case 'details':
      case 'dialog':
      case 'dir':
      case 'div':
      case 'dl':
      case 'fieldset':
      case 'figcaption':
      case 'figure':
      case 'footer':
      case 'header':
      case 'hgroup':
      case 'main':
      case 'menu':
      case 'nav':
      case 'ol':
      case 'p':
      case 'section':
      case 'summary':
      case 'ul':
      case 'pre':
      case 'listing':
      case 'table':
      case 'hr':
      case 'xmp':
      case 'h1':
      case 'h2':
      case 'h3':
      case 'h4':
      case 'h5':
      case 'h6':
        return ancestorInfo.pTagInButtonScope;

      case 'form':
        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;

      case 'li':
        return ancestorInfo.listItemTagAutoclosing;

      case 'dd':
      case 'dt':
        return ancestorInfo.dlItemTagAutoclosing;

      case 'button':
        return ancestorInfo.buttonTagInScope;

      case 'a':
        // Spec says something about storing a list of markers, but it sounds
        // equivalent to this check.
        return ancestorInfo.aTagInScope;

      case 'nobr':
        return ancestorInfo.nobrTagInScope;
    }

    return null;
  };

  var didWarn = {};

  validateDOMNesting = function (childTag, childText, ancestorInfo) {
    ancestorInfo = ancestorInfo || emptyAncestorInfo;
    var parentInfo = ancestorInfo.current;
    var parentTag = parentInfo && parentInfo.tag;

    if (childText != null) {
      !(childTag == null) ? warningWithoutStack$1(false, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;
      childTag = '#text';
    }

    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;
    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);
    var invalidParentOrAncestor = invalidParent || invalidAncestor;
    if (!invalidParentOrAncestor) {
      return;
    }

    var ancestorTag = invalidParentOrAncestor.tag;
    var addendum = getCurrentFiberStackInDev();

    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;
    if (didWarn[warnKey]) {
      return;
    }
    didWarn[warnKey] = true;

    var tagDisplayName = childTag;
    var whitespaceInfo = '';
    if (childTag === '#text') {
      if (/\S/.test(childText)) {
        tagDisplayName = 'Text nodes';
      } else {
        tagDisplayName = 'Whitespace text nodes';
        whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.';
      }
    } else {
      tagDisplayName = '<' + childTag + '>';
    }

    if (invalidParent) {
      var info = '';
      if (ancestorTag === 'table' && childTag === 'tr') {
        info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';
      }
      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info, addendum);
    } else {
      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.%s', tagDisplayName, ancestorTag, addendum);
    }
  };
}

// Renderers that don't support persistence
// can re-export everything from this module.

function shim() {
  invariant(false, 'The current renderer does not support persistence. This error is likely caused by a bug in React. Please file an issue.');
}

// Persistence (when unsupported)
var supportsPersistence = false;
var cloneInstance = shim;
var createContainerChildSet = shim;
var appendChildToContainerChildSet = shim;
var finalizeContainerChildren = shim;
var replaceContainerChildren = shim;
var cloneHiddenInstance = shim;
var cloneUnhiddenInstance = shim;
var createHiddenTextInstance = shim;

var SUPPRESS_HYDRATION_WARNING = void 0;
{
  SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';
}

var SUSPENSE_START_DATA = '$';
var SUSPENSE_END_DATA = '/$';

var STYLE = 'style';

var eventsEnabled = null;
var selectionInformation = null;

function shouldAutoFocusHostComponent(type, props) {
  switch (type) {
    case 'button':
    case 'input':
    case 'select':
    case 'textarea':
      return !!props.autoFocus;
  }
  return false;
}

function getRootHostContext(rootContainerInstance) {
  var type = void 0;
  var namespace = void 0;
  var nodeType = rootContainerInstance.nodeType;
  switch (nodeType) {
    case DOCUMENT_NODE:
    case DOCUMENT_FRAGMENT_NODE:
      {
        type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';
        var root = rootContainerInstance.documentElement;
        namespace = root ? root.namespaceURI : getChildNamespace(null, '');
        break;
      }
    default:
      {
        var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;
        var ownNamespace = container.namespaceURI || null;
        type = container.tagName;
        namespace = getChildNamespace(ownNamespace, type);
        break;
      }
  }
  {
    var validatedTag = type.toLowerCase();
    var _ancestorInfo = updatedAncestorInfo(null, validatedTag);
    return { namespace: namespace, ancestorInfo: _ancestorInfo };
  }
  return namespace;
}

function getChildHostContext(parentHostContext, type, rootContainerInstance) {
  {
    var parentHostContextDev = parentHostContext;
    var _namespace = getChildNamespace(parentHostContextDev.namespace, type);
    var _ancestorInfo2 = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);
    return { namespace: _namespace, ancestorInfo: _ancestorInfo2 };
  }
  var parentNamespace = parentHostContext;
  return getChildNamespace(parentNamespace, type);
}

function getPublicInstance(instance) {
  return instance;
}

function prepareForCommit(containerInfo) {
  eventsEnabled = isEnabled();
  selectionInformation = getSelectionInformation();
  setEnabled(false);
}

function resetAfterCommit(containerInfo) {
  restoreSelection(selectionInformation);
  selectionInformation = null;
  setEnabled(eventsEnabled);
  eventsEnabled = null;
}

function createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {
  var parentNamespace = void 0;
  {
    // TODO: take namespace into account when validating.
    var hostContextDev = hostContext;
    validateDOMNesting(type, null, hostContextDev.ancestorInfo);
    if (typeof props.children === 'string' || typeof props.children === 'number') {
      var string = '' + props.children;
      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);
      validateDOMNesting(null, string, ownAncestorInfo);
    }
    parentNamespace = hostContextDev.namespace;
  }
  var domElement = createElement(type, props, rootContainerInstance, parentNamespace);
  precacheFiberNode(internalInstanceHandle, domElement);
  updateFiberProps(domElement, props);
  return domElement;
}

function appendInitialChild(parentInstance, child) {
  parentInstance.appendChild(child);
}

function finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {
  setInitialProperties(domElement, type, props, rootContainerInstance);
  return shouldAutoFocusHostComponent(type, props);
}

function prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {
  {
    var hostContextDev = hostContext;
    if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {
      var string = '' + newProps.children;
      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);
      validateDOMNesting(null, string, ownAncestorInfo);
    }
  }
  return diffProperties(domElement, type, oldProps, newProps, rootContainerInstance);
}

function shouldSetTextContent(type, props) {
  return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;
}

function shouldDeprioritizeSubtree(type, props) {
  return !!props.hidden;
}

function createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {
  {
    var hostContextDev = hostContext;
    validateDOMNesting(null, text, hostContextDev.ancestorInfo);
  }
  var textNode = createTextNode(text, rootContainerInstance);
  precacheFiberNode(internalInstanceHandle, textNode);
  return textNode;
}

var isPrimaryRenderer = true;
// This initialization code may run even on server environments
// if a component just imports ReactDOM (e.g. for findDOMNode).
// Some environments might not have setTimeout or clearTimeout.
var scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;
var cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;
var noTimeout = -1;
var schedulePassiveEffects = scheduler.unstable_scheduleCallback;
var cancelPassiveEffects = scheduler.unstable_cancelCallback;

// -------------------
//     Mutation
// -------------------

var supportsMutation = true;

function commitMount(domElement, type, newProps, internalInstanceHandle) {
  // Despite the naming that might imply otherwise, this method only
  // fires if there is an `Update` effect scheduled during mounting.
  // This happens if `finalizeInitialChildren` returns `true` (which it
  // does to implement the `autoFocus` attribute on the client). But
  // there are also other cases when this might happen (such as patching
  // up text content during hydration mismatch). So we'll check this again.
  if (shouldAutoFocusHostComponent(type, newProps)) {
    domElement.focus();
  }
}

function commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {
  // Update the props handle so that we know which props are the ones with
  // with current event handlers.
  updateFiberProps(domElement, newProps);
  // Apply the diff to the DOM node.
  updateProperties(domElement, updatePayload, type, oldProps, newProps);
}

function resetTextContent(domElement) {
  setTextContent(domElement, '');
}

function commitTextUpdate(textInstance, oldText, newText) {
  textInstance.nodeValue = newText;
}

function appendChild(parentInstance, child) {
  parentInstance.appendChild(child);
}

function appendChildToContainer(container, child) {
  var parentNode = void 0;
  if (container.nodeType === COMMENT_NODE) {
    parentNode = container.parentNode;
    parentNode.insertBefore(child, container);
  } else {
    parentNode = container;
    parentNode.appendChild(child);
  }
  // This container might be used for a portal.
  // If something inside a portal is clicked, that click should bubble
  // through the React tree. However, on Mobile Safari the click would
  // never bubble through the *DOM* tree unless an ancestor with onclick
  // event exists. So we wouldn't see it and dispatch it.
  // This is why we ensure that non React root containers have inline onclick
  // defined.
  // https://github.com/facebook/react/issues/11918
  var reactRootContainer = container._reactRootContainer;
  if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {
    // TODO: This cast may not be sound for SVG, MathML or custom elements.
    trapClickOnNonInteractiveElement(parentNode);
  }
}

function insertBefore(parentInstance, child, beforeChild) {
  parentInstance.insertBefore(child, beforeChild);
}

function insertInContainerBefore(container, child, beforeChild) {
  if (container.nodeType === COMMENT_NODE) {
    container.parentNode.insertBefore(child, beforeChild);
  } else {
    container.insertBefore(child, beforeChild);
  }
}

function removeChild(parentInstance, child) {
  parentInstance.removeChild(child);
}

function removeChildFromContainer(container, child) {
  if (container.nodeType === COMMENT_NODE) {
    container.parentNode.removeChild(child);
  } else {
    container.removeChild(child);
  }
}

function clearSuspenseBoundary(parentInstance, suspenseInstance) {
  var node = suspenseInstance;
  // Delete all nodes within this suspense boundary.
  // There might be nested nodes so we need to keep track of how
  // deep we are and only break out when we're back on top.
  var depth = 0;
  do {
    var nextNode = node.nextSibling;
    parentInstance.removeChild(node);
    if (nextNode && nextNode.nodeType === COMMENT_NODE) {
      var data = nextNode.data;
      if (data === SUSPENSE_END_DATA) {
        if (depth === 0) {
          parentInstance.removeChild(nextNode);
          return;
        } else {
          depth--;
        }
      } else if (data === SUSPENSE_START_DATA) {
        depth++;
      }
    }
    node = nextNode;
  } while (node);
  // TODO: Warn, we didn't find the end comment boundary.
}

function clearSuspenseBoundaryFromContainer(container, suspenseInstance) {
  if (container.nodeType === COMMENT_NODE) {
    clearSuspenseBoundary(container.parentNode, suspenseInstance);
  } else if (container.nodeType === ELEMENT_NODE) {
    clearSuspenseBoundary(container, suspenseInstance);
  } else {
    // Document nodes should never contain suspense boundaries.
  }
}

function hideInstance(instance) {
  // TODO: Does this work for all element types? What about MathML? Should we
  // pass host context to this method?
  instance = instance;
  instance.style.display = 'none';
}

function hideTextInstance(textInstance) {
  textInstance.nodeValue = '';
}

function unhideInstance(instance, props) {
  instance = instance;
  var styleProp = props[STYLE];
  var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;
  instance.style.display = dangerousStyleValue('display', display);
}

function unhideTextInstance(textInstance, text) {
  textInstance.nodeValue = text;
}

// -------------------
//     Hydration
// -------------------

var supportsHydration = true;

function canHydrateInstance(instance, type, props) {
  if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {
    return null;
  }
  // This has now been refined to an element node.
  return instance;
}

function canHydrateTextInstance(instance, text) {
  if (text === '' || instance.nodeType !== TEXT_NODE) {
    // Empty strings are not parsed by HTML so there won't be a correct match here.
    return null;
  }
  // This has now been refined to a text node.
  return instance;
}

function canHydrateSuspenseInstance(instance) {
  if (instance.nodeType !== COMMENT_NODE) {
    // Empty strings are not parsed by HTML so there won't be a correct match here.
    return null;
  }
  // This has now been refined to a suspense node.
  return instance;
}

function getNextHydratableSibling(instance) {
  var node = instance.nextSibling;
  // Skip non-hydratable nodes.
  while (node && node.nodeType !== ELEMENT_NODE && node.nodeType !== TEXT_NODE && (!enableSuspenseServerRenderer || node.nodeType !== COMMENT_NODE || node.data !== SUSPENSE_START_DATA)) {
    node = node.nextSibling;
  }
  return node;
}

function getFirstHydratableChild(parentInstance) {
  var next = parentInstance.firstChild;
  // Skip non-hydratable nodes.
  while (next && next.nodeType !== ELEMENT_NODE && next.nodeType !== TEXT_NODE && (!enableSuspenseServerRenderer || next.nodeType !== COMMENT_NODE || next.data !== SUSPENSE_START_DATA)) {
    next = next.nextSibling;
  }
  return next;
}

function hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {
  precacheFiberNode(internalInstanceHandle, instance);
  // TODO: Possibly defer this until the commit phase where all the events
  // get attached.
  updateFiberProps(instance, props);
  var parentNamespace = void 0;
  {
    var hostContextDev = hostContext;
    parentNamespace = hostContextDev.namespace;
  }
  return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance);
}

function hydrateTextInstance(textInstance, text, internalInstanceHandle) {
  precacheFiberNode(internalInstanceHandle, textInstance);
  return diffHydratedText(textInstance, text);
}

function getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {
  var node = suspenseInstance.nextSibling;
  // Skip past all nodes within this suspense boundary.
  // There might be nested nodes so we need to keep track of how
  // deep we are and only break out when we're back on top.
  var depth = 0;
  while (node) {
    if (node.nodeType === COMMENT_NODE) {
      var data = node.data;
      if (data === SUSPENSE_END_DATA) {
        if (depth === 0) {
          return getNextHydratableSibling(node);
        } else {
          depth--;
        }
      } else if (data === SUSPENSE_START_DATA) {
        depth++;
      }
    }
    node = node.nextSibling;
  }
  // TODO: Warn, we didn't find the end comment boundary.
  return null;
}

function didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {
  {
    warnForUnmatchedText(textInstance, text);
  }
}

function didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {
  if ( true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {
    warnForUnmatchedText(textInstance, text);
  }
}

function didNotHydrateContainerInstance(parentContainer, instance) {
  {
    if (instance.nodeType === ELEMENT_NODE) {
      warnForDeletedHydratableElement(parentContainer, instance);
    } else if (instance.nodeType === COMMENT_NODE) {
      // TODO: warnForDeletedHydratableSuspenseBoundary
    } else {
      warnForDeletedHydratableText(parentContainer, instance);
    }
  }
}

function didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {
  if ( true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {
    if (instance.nodeType === ELEMENT_NODE) {
      warnForDeletedHydratableElement(parentInstance, instance);
    } else if (instance.nodeType === COMMENT_NODE) {
      // TODO: warnForDeletedHydratableSuspenseBoundary
    } else {
      warnForDeletedHydratableText(parentInstance, instance);
    }
  }
}

function didNotFindHydratableContainerInstance(parentContainer, type, props) {
  {
    warnForInsertedHydratedElement(parentContainer, type, props);
  }
}

function didNotFindHydratableContainerTextInstance(parentContainer, text) {
  {
    warnForInsertedHydratedText(parentContainer, text);
  }
}



function didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {
  if ( true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {
    warnForInsertedHydratedElement(parentInstance, type, props);
  }
}

function didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {
  if ( true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {
    warnForInsertedHydratedText(parentInstance, text);
  }
}

function didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {
  if ( true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {
    // TODO: warnForInsertedHydratedSuspense(parentInstance);
  }
}

// Prefix measurements so that it's possible to filter them.
// Longer prefixes are hard to read in DevTools.
var reactEmoji = '\u269B';
var warningEmoji = '\u26D4';
var supportsUserTiming = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';

// Keep track of current fiber so that we know the path to unwind on pause.
// TODO: this looks the same as nextUnitOfWork in scheduler. Can we unify them?
var currentFiber = null;
// If we're in the middle of user code, which fiber and method is it?
// Reusing `currentFiber` would be confusing for this because user code fiber
// can change during commit phase too, but we don't need to unwind it (since
// lifecycles in the commit phase don't resemble a tree).
var currentPhase = null;
var currentPhaseFiber = null;
// Did lifecycle hook schedule an update? This is often a performance problem,
// so we will keep track of it, and include it in the report.
// Track commits caused by cascading updates.
var isCommitting = false;
var hasScheduledUpdateInCurrentCommit = false;
var hasScheduledUpdateInCurrentPhase = false;
var commitCountInCurrentWorkLoop = 0;
var effectCountInCurrentCommit = 0;
var isWaitingForCallback = false;
// During commits, we only show a measurement once per method name
// to avoid stretch the commit phase with measurement overhead.
var labelsInCurrentCommit = new Set();

var formatMarkName = function (markName) {
  return reactEmoji + ' ' + markName;
};

var formatLabel = function (label, warning) {
  var prefix = warning ? warningEmoji + ' ' : reactEmoji + ' ';
  var suffix = warning ? ' Warning: ' + warning : '';
  return '' + prefix + label + suffix;
};

var beginMark = function (markName) {
  performance.mark(formatMarkName(markName));
};

var clearMark = function (markName) {
  performance.clearMarks(formatMarkName(markName));
};

var endMark = function (label, markName, warning) {
  var formattedMarkName = formatMarkName(markName);
  var formattedLabel = formatLabel(label, warning);
  try {
    performance.measure(formattedLabel, formattedMarkName);
  } catch (err) {}
  // If previous mark was missing for some reason, this will throw.
  // This could only happen if React crashed in an unexpected place earlier.
  // Don't pile on with more errors.

  // Clear marks immediately to avoid growing buffer.
  performance.clearMarks(formattedMarkName);
  performance.clearMeasures(formattedLabel);
};

var getFiberMarkName = function (label, debugID) {
  return label + ' (#' + debugID + ')';
};

var getFiberLabel = function (componentName, isMounted, phase) {
  if (phase === null) {
    // These are composite component total time measurements.
    return componentName + ' [' + (isMounted ? 'update' : 'mount') + ']';
  } else {
    // Composite component methods.
    return componentName + '.' + phase;
  }
};

var beginFiberMark = function (fiber, phase) {
  var componentName = getComponentName(fiber.type) || 'Unknown';
  var debugID = fiber._debugID;
  var isMounted = fiber.alternate !== null;
  var label = getFiberLabel(componentName, isMounted, phase);

  if (isCommitting && labelsInCurrentCommit.has(label)) {
    // During the commit phase, we don't show duplicate labels because
    // there is a fixed overhead for every measurement, and we don't
    // want to stretch the commit phase beyond necessary.
    return false;
  }
  labelsInCurrentCommit.add(label);

  var markName = getFiberMarkName(label, debugID);
  beginMark(markName);
  return true;
};

var clearFiberMark = function (fiber, phase) {
  var componentName = getComponentName(fiber.type) || 'Unknown';
  var debugID = fiber._debugID;
  var isMounted = fiber.alternate !== null;
  var label = getFiberLabel(componentName, isMounted, phase);
  var markName = getFiberMarkName(label, debugID);
  clearMark(markName);
};

var endFiberMark = function (fiber, phase, warning) {
  var componentName = getComponentName(fiber.type) || 'Unknown';
  var debugID = fiber._debugID;
  var isMounted = fiber.alternate !== null;
  var label = getFiberLabel(componentName, isMounted, phase);
  var markName = getFiberMarkName(label, debugID);
  endMark(label, markName, warning);
};

var shouldIgnoreFiber = function (fiber) {
  // Host components should be skipped in the timeline.
  // We could check typeof fiber.type, but does this work with RN?
  switch (fiber.tag) {
    case HostRoot:
    case HostComponent:
    case HostText:
    case HostPortal:
    case Fragment:
    case ContextProvider:
    case ContextConsumer:
    case Mode:
      return true;
    default:
      return false;
  }
};

var clearPendingPhaseMeasurement = function () {
  if (currentPhase !== null && currentPhaseFiber !== null) {
    clearFiberMark(currentPhaseFiber, currentPhase);
  }
  currentPhaseFiber = null;
  currentPhase = null;
  hasScheduledUpdateInCurrentPhase = false;
};

var pauseTimers = function () {
  // Stops all currently active measurements so that they can be resumed
  // if we continue in a later deferred loop from the same unit of work.
  var fiber = currentFiber;
  while (fiber) {
    if (fiber._debugIsCurrentlyTiming) {
      endFiberMark(fiber, null, null);
    }
    fiber = fiber.return;
  }
};

var resumeTimersRecursively = function (fiber) {
  if (fiber.return !== null) {
    resumeTimersRecursively(fiber.return);
  }
  if (fiber._debugIsCurrentlyTiming) {
    beginFiberMark(fiber, null);
  }
};

var resumeTimers = function () {
  // Resumes all measurements that were active during the last deferred loop.
  if (currentFiber !== null) {
    resumeTimersRecursively(currentFiber);
  }
};

function recordEffect() {
  if (enableUserTimingAPI) {
    effectCountInCurrentCommit++;
  }
}

function recordScheduleUpdate() {
  if (enableUserTimingAPI) {
    if (isCommitting) {
      hasScheduledUpdateInCurrentCommit = true;
    }
    if (currentPhase !== null && currentPhase !== 'componentWillMount' && currentPhase !== 'componentWillReceiveProps') {
      hasScheduledUpdateInCurrentPhase = true;
    }
  }
}

function startRequestCallbackTimer() {
  if (enableUserTimingAPI) {
    if (supportsUserTiming && !isWaitingForCallback) {
      isWaitingForCallback = true;
      beginMark('(Waiting for async callback...)');
    }
  }
}

function stopRequestCallbackTimer(didExpire, expirationTime) {
  if (enableUserTimingAPI) {
    if (supportsUserTiming) {
      isWaitingForCallback = false;
      var warning = didExpire ? 'React was blocked by main thread' : null;
      endMark('(Waiting for async callback... will force flush in ' + expirationTime + ' ms)', '(Waiting for async callback...)', warning);
    }
  }
}

function startWorkTimer(fiber) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {
      return;
    }
    // If we pause, this is the fiber to unwind from.
    currentFiber = fiber;
    if (!beginFiberMark(fiber, null)) {
      return;
    }
    fiber._debugIsCurrentlyTiming = true;
  }
}

function cancelWorkTimer(fiber) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {
      return;
    }
    // Remember we shouldn't complete measurement for this fiber.
    // Otherwise flamechart will be deep even for small updates.
    fiber._debugIsCurrentlyTiming = false;
    clearFiberMark(fiber, null);
  }
}

function stopWorkTimer(fiber) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {
      return;
    }
    // If we pause, its parent is the fiber to unwind from.
    currentFiber = fiber.return;
    if (!fiber._debugIsCurrentlyTiming) {
      return;
    }
    fiber._debugIsCurrentlyTiming = false;
    endFiberMark(fiber, null, null);
  }
}

function stopFailedWorkTimer(fiber) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {
      return;
    }
    // If we pause, its parent is the fiber to unwind from.
    currentFiber = fiber.return;
    if (!fiber._debugIsCurrentlyTiming) {
      return;
    }
    fiber._debugIsCurrentlyTiming = false;
    var warning = fiber.tag === SuspenseComponent || fiber.tag === DehydratedSuspenseComponent ? 'Rendering was suspended' : 'An error was thrown inside this error boundary';
    endFiberMark(fiber, null, warning);
  }
}

function startPhaseTimer(fiber, phase) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    clearPendingPhaseMeasurement();
    if (!beginFiberMark(fiber, phase)) {
      return;
    }
    currentPhaseFiber = fiber;
    currentPhase = phase;
  }
}

function stopPhaseTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    if (currentPhase !== null && currentPhaseFiber !== null) {
      var warning = hasScheduledUpdateInCurrentPhase ? 'Scheduled a cascading update' : null;
      endFiberMark(currentPhaseFiber, currentPhase, warning);
    }
    currentPhase = null;
    currentPhaseFiber = null;
  }
}

function startWorkLoopTimer(nextUnitOfWork) {
  if (enableUserTimingAPI) {
    currentFiber = nextUnitOfWork;
    if (!supportsUserTiming) {
      return;
    }
    commitCountInCurrentWorkLoop = 0;
    // This is top level call.
    // Any other measurements are performed within.
    beginMark('(React Tree Reconciliation)');
    // Resume any measurements that were in progress during the last loop.
    resumeTimers();
  }
}

function stopWorkLoopTimer(interruptedBy, didCompleteRoot) {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    var warning = null;
    if (interruptedBy !== null) {
      if (interruptedBy.tag === HostRoot) {
        warning = 'A top-level update interrupted the previous render';
      } else {
        var componentName = getComponentName(interruptedBy.type) || 'Unknown';
        warning = 'An update to ' + componentName + ' interrupted the previous render';
      }
    } else if (commitCountInCurrentWorkLoop > 1) {
      warning = 'There were cascading updates';
    }
    commitCountInCurrentWorkLoop = 0;
    var label = didCompleteRoot ? '(React Tree Reconciliation: Completed Root)' : '(React Tree Reconciliation: Yielded)';
    // Pause any measurements until the next loop.
    pauseTimers();
    endMark(label, '(React Tree Reconciliation)', warning);
  }
}

function startCommitTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    isCommitting = true;
    hasScheduledUpdateInCurrentCommit = false;
    labelsInCurrentCommit.clear();
    beginMark('(Committing Changes)');
  }
}

function stopCommitTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }

    var warning = null;
    if (hasScheduledUpdateInCurrentCommit) {
      warning = 'Lifecycle hook scheduled a cascading update';
    } else if (commitCountInCurrentWorkLoop > 0) {
      warning = 'Caused by a cascading update in earlier commit';
    }
    hasScheduledUpdateInCurrentCommit = false;
    commitCountInCurrentWorkLoop++;
    isCommitting = false;
    labelsInCurrentCommit.clear();

    endMark('(Committing Changes)', '(Committing Changes)', warning);
  }
}

function startCommitSnapshotEffectsTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    effectCountInCurrentCommit = 0;
    beginMark('(Committing Snapshot Effects)');
  }
}

function stopCommitSnapshotEffectsTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    var count = effectCountInCurrentCommit;
    effectCountInCurrentCommit = 0;
    endMark('(Committing Snapshot Effects: ' + count + ' Total)', '(Committing Snapshot Effects)', null);
  }
}

function startCommitHostEffectsTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    effectCountInCurrentCommit = 0;
    beginMark('(Committing Host Effects)');
  }
}

function stopCommitHostEffectsTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    var count = effectCountInCurrentCommit;
    effectCountInCurrentCommit = 0;
    endMark('(Committing Host Effects: ' + count + ' Total)', '(Committing Host Effects)', null);
  }
}

function startCommitLifeCyclesTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    effectCountInCurrentCommit = 0;
    beginMark('(Calling Lifecycle Methods)');
  }
}

function stopCommitLifeCyclesTimer() {
  if (enableUserTimingAPI) {
    if (!supportsUserTiming) {
      return;
    }
    var count = effectCountInCurrentCommit;
    effectCountInCurrentCommit = 0;
    endMark('(Calling Lifecycle Methods: ' + count + ' Total)', '(Calling Lifecycle Methods)', null);
  }
}

var valueStack = [];

var fiberStack = void 0;

{
  fiberStack = [];
}

var index = -1;

function createCursor(defaultValue) {
  return {
    current: defaultValue
  };
}

function pop(cursor, fiber) {
  if (index < 0) {
    {
      warningWithoutStack$1(false, 'Unexpected pop.');
    }
    return;
  }

  {
    if (fiber !== fiberStack[index]) {
      warningWithoutStack$1(false, 'Unexpected Fiber popped.');
    }
  }

  cursor.current = valueStack[index];

  valueStack[index] = null;

  {
    fiberStack[index] = null;
  }

  index--;
}

function push(cursor, value, fiber) {
  index++;

  valueStack[index] = cursor.current;

  {
    fiberStack[index] = fiber;
  }

  cursor.current = value;
}

function checkThatStackIsEmpty() {
  {
    if (index !== -1) {
      warningWithoutStack$1(false, 'Expected an empty stack. Something was not reset properly.');
    }
  }
}

function resetStackAfterFatalErrorInDev() {
  {
    index = -1;
    valueStack.length = 0;
    fiberStack.length = 0;
  }
}

var warnedAboutMissingGetChildContext = void 0;

{
  warnedAboutMissingGetChildContext = {};
}

var emptyContextObject = {};
{
  Object.freeze(emptyContextObject);
}

// A cursor to the current merged context object on the stack.
var contextStackCursor = createCursor(emptyContextObject);
// A cursor to a boolean indicating whether the context has changed.
var didPerformWorkStackCursor = createCursor(false);
// Keep track of the previous context object that was on the stack.
// We use this to get access to the parent context after we have already
// pushed the next context provider, and now need to merge their contexts.
var previousContext = emptyContextObject;

function getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {
  if (didPushOwnContextIfProvider && isContextProvider(Component)) {
    // If the fiber is a context provider itself, when we read its context
    // we may have already pushed its own child context on the stack. A context
    // provider should not "see" its own child context. Therefore we read the
    // previous (parent) context instead for a context provider.
    return previousContext;
  }
  return contextStackCursor.current;
}

function cacheContext(workInProgress, unmaskedContext, maskedContext) {
  var instance = workInProgress.stateNode;
  instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;
  instance.__reactInternalMemoizedMaskedChildContext = maskedContext;
}

function getMaskedContext(workInProgress, unmaskedContext) {
  var type = workInProgress.type;
  var contextTypes = type.contextTypes;
  if (!contextTypes) {
    return emptyContextObject;
  }

  // Avoid recreating masked context unless unmasked context has changed.
  // Failing to do this will result in unnecessary calls to componentWillReceiveProps.
  // This may trigger infinite loops if componentWillReceiveProps calls setState.
  var instance = workInProgress.stateNode;
  if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {
    return instance.__reactInternalMemoizedMaskedChildContext;
  }

  var context = {};
  for (var key in contextTypes) {
    context[key] = unmaskedContext[key];
  }

  {
    var name = getComponentName(type) || 'Unknown';
    checkPropTypes(contextTypes, context, 'context', name, getCurrentFiberStackInDev);
  }

  // Cache unmasked context so we can avoid recreating masked context unless necessary.
  // Context is created before the class component is instantiated so check for instance.
  if (instance) {
    cacheContext(workInProgress, unmaskedContext, context);
  }

  return context;
}

function hasContextChanged() {
  return didPerformWorkStackCursor.current;
}

function isContextProvider(type) {
  var childContextTypes = type.childContextTypes;
  return childContextTypes !== null && childContextTypes !== undefined;
}

function popContext(fiber) {
  pop(didPerformWorkStackCursor, fiber);
  pop(contextStackCursor, fiber);
}

function popTopLevelContextObject(fiber) {
  pop(didPerformWorkStackCursor, fiber);
  pop(contextStackCursor, fiber);
}

function pushTopLevelContextObject(fiber, context, didChange) {
  !(contextStackCursor.current === emptyContextObject) ? invariant(false, 'Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  push(contextStackCursor, context, fiber);
  push(didPerformWorkStackCursor, didChange, fiber);
}

function processChildContext(fiber, type, parentContext) {
  var instance = fiber.stateNode;
  var childContextTypes = type.childContextTypes;

  // TODO (bvaughn) Replace this behavior with an invariant() in the future.
  // It has only been added in Fiber to match the (unintentional) behavior in Stack.
  if (typeof instance.getChildContext !== 'function') {
    {
      var componentName = getComponentName(type) || 'Unknown';

      if (!warnedAboutMissingGetChildContext[componentName]) {
        warnedAboutMissingGetChildContext[componentName] = true;
        warningWithoutStack$1(false, '%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);
      }
    }
    return parentContext;
  }

  var childContext = void 0;
  {
    setCurrentPhase('getChildContext');
  }
  startPhaseTimer(fiber, 'getChildContext');
  childContext = instance.getChildContext();
  stopPhaseTimer();
  {
    setCurrentPhase(null);
  }
  for (var contextKey in childContext) {
    !(contextKey in childContextTypes) ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', getComponentName(type) || 'Unknown', contextKey) : void 0;
  }
  {
    var name = getComponentName(type) || 'Unknown';
    checkPropTypes(childContextTypes, childContext, 'child context', name,
    // In practice, there is one case in which we won't get a stack. It's when
    // somebody calls unstable_renderSubtreeIntoContainer() and we process
    // context from the parent component instance. The stack will be missing
    // because it's outside of the reconciliation, and so the pointer has not
    // been set. This is rare and doesn't matter. We'll also remove that API.
    getCurrentFiberStackInDev);
  }

  return _assign({}, parentContext, childContext);
}

function pushContextProvider(workInProgress) {
  var instance = workInProgress.stateNode;
  // We push the context as early as possible to ensure stack integrity.
  // If the instance does not exist yet, we will push null at first,
  // and replace it on the stack later when invalidating the context.
  var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject;

  // Remember the parent context so we can merge with it later.
  // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.
  previousContext = contextStackCursor.current;
  push(contextStackCursor, memoizedMergedChildContext, workInProgress);
  push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);

  return true;
}

function invalidateContextProvider(workInProgress, type, didChange) {
  var instance = workInProgress.stateNode;
  !instance ? invariant(false, 'Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  if (didChange) {
    // Merge parent and own context.
    // Skip this if we're not updating due to sCU.
    // This avoids unnecessarily recomputing memoized values.
    var mergedContext = processChildContext(workInProgress, type, previousContext);
    instance.__reactInternalMemoizedMergedChildContext = mergedContext;

    // Replace the old (or empty) context with the new one.
    // It is important to unwind the context in the reverse order.
    pop(didPerformWorkStackCursor, workInProgress);
    pop(contextStackCursor, workInProgress);
    // Now push the new context and mark that it has changed.
    push(contextStackCursor, mergedContext, workInProgress);
    push(didPerformWorkStackCursor, didChange, workInProgress);
  } else {
    pop(didPerformWorkStackCursor, workInProgress);
    push(didPerformWorkStackCursor, didChange, workInProgress);
  }
}

function findCurrentUnmaskedContext(fiber) {
  // Currently this is only used with renderSubtreeIntoContainer; not sure if it
  // makes sense elsewhere
  !(isFiberMounted(fiber) && fiber.tag === ClassComponent) ? invariant(false, 'Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  var node = fiber;
  do {
    switch (node.tag) {
      case HostRoot:
        return node.stateNode.context;
      case ClassComponent:
        {
          var Component = node.type;
          if (isContextProvider(Component)) {
            return node.stateNode.__reactInternalMemoizedMergedChildContext;
          }
          break;
        }
    }
    node = node.return;
  } while (node !== null);
  invariant(false, 'Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.');
}

var onCommitFiberRoot = null;
var onCommitFiberUnmount = null;
var hasLoggedError = false;

function catchErrors(fn) {
  return function (arg) {
    try {
      return fn(arg);
    } catch (err) {
      if ( true && !hasLoggedError) {
        hasLoggedError = true;
        warningWithoutStack$1(false, 'React DevTools encountered an error: %s', err);
      }
    }
  };
}

var isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';

function injectInternals(internals) {
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
    // No DevTools
    return false;
  }
  var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;
  if (hook.isDisabled) {
    // This isn't a real property on the hook, but it can be set to opt out
    // of DevTools integration and associated warnings and logs.
    // https://github.com/facebook/react/issues/3877
    return true;
  }
  if (!hook.supportsFiber) {
    {
      warningWithoutStack$1(false, 'The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://fb.me/react-devtools');
    }
    // DevTools exists, even though it doesn't support Fiber.
    return true;
  }
  try {
    var rendererID = hook.inject(internals);
    // We have successfully injected, so now it is safe to set up hooks.
    onCommitFiberRoot = catchErrors(function (root) {
      return hook.onCommitFiberRoot(rendererID, root);
    });
    onCommitFiberUnmount = catchErrors(function (fiber) {
      return hook.onCommitFiberUnmount(rendererID, fiber);
    });
  } catch (err) {
    // Catch all errors because it is unsafe to throw during initialization.
    {
      warningWithoutStack$1(false, 'React DevTools encountered an error: %s.', err);
    }
  }
  // DevTools exists
  return true;
}

function onCommitRoot(root) {
  if (typeof onCommitFiberRoot === 'function') {
    onCommitFiberRoot(root);
  }
}

function onCommitUnmount(fiber) {
  if (typeof onCommitFiberUnmount === 'function') {
    onCommitFiberUnmount(fiber);
  }
}

// Max 31 bit integer. The max integer size in V8 for 32-bit systems.
// Math.pow(2, 30) - 1
// 0b111111111111111111111111111111
var maxSigned31BitInt = 1073741823;

var NoWork = 0;
var Never = 1;
var Sync = maxSigned31BitInt;

var UNIT_SIZE = 10;
var MAGIC_NUMBER_OFFSET = maxSigned31BitInt - 1;

// 1 unit of expiration time represents 10ms.
function msToExpirationTime(ms) {
  // Always add an offset so that we don't clash with the magic number for NoWork.
  return MAGIC_NUMBER_OFFSET - (ms / UNIT_SIZE | 0);
}

function expirationTimeToMs(expirationTime) {
  return (MAGIC_NUMBER_OFFSET - expirationTime) * UNIT_SIZE;
}

function ceiling(num, precision) {
  return ((num / precision | 0) + 1) * precision;
}

function computeExpirationBucket(currentTime, expirationInMs, bucketSizeMs) {
  return MAGIC_NUMBER_OFFSET - ceiling(MAGIC_NUMBER_OFFSET - currentTime + expirationInMs / UNIT_SIZE, bucketSizeMs / UNIT_SIZE);
}

var LOW_PRIORITY_EXPIRATION = 5000;
var LOW_PRIORITY_BATCH_SIZE = 250;

function computeAsyncExpiration(currentTime) {
  return computeExpirationBucket(currentTime, LOW_PRIORITY_EXPIRATION, LOW_PRIORITY_BATCH_SIZE);
}

// We intentionally set a higher expiration time for interactive updates in
// dev than in production.
//
// If the main thread is being blocked so long that you hit the expiration,
// it's a problem that could be solved with better scheduling.
//
// People will be more likely to notice this and fix it with the long
// expiration time in development.
//
// In production we opt for better UX at the risk of masking scheduling
// problems, by expiring fast.
var HIGH_PRIORITY_EXPIRATION = 500;
var HIGH_PRIORITY_BATCH_SIZE = 100;

function computeInteractiveExpiration(currentTime) {
  return computeExpirationBucket(currentTime, HIGH_PRIORITY_EXPIRATION, HIGH_PRIORITY_BATCH_SIZE);
}

var NoContext = 0;
var ConcurrentMode = 1;
var StrictMode = 2;
var ProfileMode = 4;

var hasBadMapPolyfill = void 0;

{
  hasBadMapPolyfill = false;
  try {
    var nonExtensibleObject = Object.preventExtensions({});
    var testMap = new Map([[nonExtensibleObject, null]]);
    var testSet = new Set([nonExtensibleObject]);
    // This is necessary for Rollup to not consider these unused.
    // https://github.com/rollup/rollup/issues/1771
    // TODO: we can remove these if Rollup fixes the bug.
    testMap.set(0, 0);
    testSet.add(0);
  } catch (e) {
    // TODO: Consider warning about bad polyfills
    hasBadMapPolyfill = true;
  }
}

// A Fiber is work on a Component that needs to be done or was done. There can
// be more than one per component.


var debugCounter = void 0;

{
  debugCounter = 1;
}

function FiberNode(tag, pendingProps, key, mode) {
  // Instance
  this.tag = tag;
  this.key = key;
  this.elementType = null;
  this.type = null;
  this.stateNode = null;

  // Fiber
  this.return = null;
  this.child = null;
  this.sibling = null;
  this.index = 0;

  this.ref = null;

  this.pendingProps = pendingProps;
  this.memoizedProps = null;
  this.updateQueue = null;
  this.memoizedState = null;
  this.contextDependencies = null;

  this.mode = mode;

  // Effects
  this.effectTag = NoEffect;
  this.nextEffect = null;

  this.firstEffect = null;
  this.lastEffect = null;

  this.expirationTime = NoWork;
  this.childExpirationTime = NoWork;

  this.alternate = null;

  if (enableProfilerTimer) {
    // Note: The following is done to avoid a v8 performance cliff.
    //
    // Initializing the fields below to smis and later updating them with
    // double values will cause Fibers to end up having separate shapes.
    // This behavior/bug has something to do with Object.preventExtension().
    // Fortunately this only impacts DEV builds.
    // Unfortunately it makes React unusably slow for some applications.
    // To work around this, initialize the fields below with doubles.
    //
    // Learn more about this here:
    // https://github.com/facebook/react/issues/14365
    // https://bugs.chromium.org/p/v8/issues/detail?id=8538
    this.actualDuration = Number.NaN;
    this.actualStartTime = Number.NaN;
    this.selfBaseDuration = Number.NaN;
    this.treeBaseDuration = Number.NaN;

    // It's okay to replace the initial doubles with smis after initialization.
    // This won't trigger the performance cliff mentioned above,
    // and it simplifies other profiler code (including DevTools).
    this.actualDuration = 0;
    this.actualStartTime = -1;
    this.selfBaseDuration = 0;
    this.treeBaseDuration = 0;
  }

  {
    this._debugID = debugCounter++;
    this._debugSource = null;
    this._debugOwner = null;
    this._debugIsCurrentlyTiming = false;
    this._debugHookTypes = null;
    if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {
      Object.preventExtensions(this);
    }
  }
}

// This is a constructor function, rather than a POJO constructor, still
// please ensure we do the following:
// 1) Nobody should add any instance methods on this. Instance methods can be
//    more difficult to predict when they get optimized and they are almost
//    never inlined properly in static compilers.
// 2) Nobody should rely on `instanceof Fiber` for type testing. We should
//    always know when it is a fiber.
// 3) We might want to experiment with using numeric keys since they are easier
//    to optimize in a non-JIT environment.
// 4) We can easily go from a constructor to a createFiber object literal if that
//    is faster.
// 5) It should be easy to port this to a C struct and keep a C implementation
//    compatible.
var createFiber = function (tag, pendingProps, key, mode) {
  // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors
  return new FiberNode(tag, pendingProps, key, mode);
};

function shouldConstruct(Component) {
  var prototype = Component.prototype;
  return !!(prototype && prototype.isReactComponent);
}

function isSimpleFunctionComponent(type) {
  return typeof type === 'function' && !shouldConstruct(type) && type.defaultProps === undefined;
}

function resolveLazyComponentTag(Component) {
  if (typeof Component === 'function') {
    return shouldConstruct(Component) ? ClassComponent : FunctionComponent;
  } else if (Component !== undefined && Component !== null) {
    var $$typeof = Component.$$typeof;
    if ($$typeof === REACT_FORWARD_REF_TYPE) {
      return ForwardRef;
    }
    if ($$typeof === REACT_MEMO_TYPE) {
      return MemoComponent;
    }
  }
  return IndeterminateComponent;
}

// This is used to create an alternate fiber to do work on.
function createWorkInProgress(current, pendingProps, expirationTime) {
  var workInProgress = current.alternate;
  if (workInProgress === null) {
    // We use a double buffering pooling technique because we know that we'll
    // only ever need at most two versions of a tree. We pool the "other" unused
    // node that we're free to reuse. This is lazily created to avoid allocating
    // extra objects for things that are never updated. It also allow us to
    // reclaim the extra memory if needed.
    workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);
    workInProgress.elementType = current.elementType;
    workInProgress.type = current.type;
    workInProgress.stateNode = current.stateNode;

    {
      // DEV-only fields
      workInProgress._debugID = current._debugID;
      workInProgress._debugSource = current._debugSource;
      workInProgress._debugOwner = current._debugOwner;
      workInProgress._debugHookTypes = current._debugHookTypes;
    }

    workInProgress.alternate = current;
    current.alternate = workInProgress;
  } else {
    workInProgress.pendingProps = pendingProps;

    // We already have an alternate.
    // Reset the effect tag.
    workInProgress.effectTag = NoEffect;

    // The effect list is no longer valid.
    workInProgress.nextEffect = null;
    workInProgress.firstEffect = null;
    workInProgress.lastEffect = null;

    if (enableProfilerTimer) {
      // We intentionally reset, rather than copy, actualDuration & actualStartTime.
      // This prevents time from endlessly accumulating in new commits.
      // This has the downside of resetting values for different priority renders,
      // But works for yielding (the common case) and should support resuming.
      workInProgress.actualDuration = 0;
      workInProgress.actualStartTime = -1;
    }
  }

  workInProgress.childExpirationTime = current.childExpirationTime;
  workInProgress.expirationTime = current.expirationTime;

  workInProgress.child = current.child;
  workInProgress.memoizedProps = current.memoizedProps;
  workInProgress.memoizedState = current.memoizedState;
  workInProgress.updateQueue = current.updateQueue;
  workInProgress.contextDependencies = current.contextDependencies;

  // These will be overridden during the parent's reconciliation
  workInProgress.sibling = current.sibling;
  workInProgress.index = current.index;
  workInProgress.ref = current.ref;

  if (enableProfilerTimer) {
    workInProgress.selfBaseDuration = current.selfBaseDuration;
    workInProgress.treeBaseDuration = current.treeBaseDuration;
  }

  return workInProgress;
}

function createHostRootFiber(isConcurrent) {
  var mode = isConcurrent ? ConcurrentMode | StrictMode : NoContext;

  if (enableProfilerTimer && isDevToolsPresent) {
    // Always collect profile timings when DevTools are present.
    // This enables DevTools to start capturing timing at any point–
    // Without some nodes in the tree having empty base times.
    mode |= ProfileMode;
  }

  return createFiber(HostRoot, null, null, mode);
}

function createFiberFromTypeAndProps(type, // React$ElementType
key, pendingProps, owner, mode, expirationTime) {
  var fiber = void 0;

  var fiberTag = IndeterminateComponent;
  // The resolved type is set if we know what the final type will be. I.e. it's not lazy.
  var resolvedType = type;
  if (typeof type === 'function') {
    if (shouldConstruct(type)) {
      fiberTag = ClassComponent;
    }
  } else if (typeof type === 'string') {
    fiberTag = HostComponent;
  } else {
    getTag: switch (type) {
      case REACT_FRAGMENT_TYPE:
        return createFiberFromFragment(pendingProps.children, mode, expirationTime, key);
      case REACT_CONCURRENT_MODE_TYPE:
        return createFiberFromMode(pendingProps, mode | ConcurrentMode | StrictMode, expirationTime, key);
      case REACT_STRICT_MODE_TYPE:
        return createFiberFromMode(pendingProps, mode | StrictMode, expirationTime, key);
      case REACT_PROFILER_TYPE:
        return createFiberFromProfiler(pendingProps, mode, expirationTime, key);
      case REACT_SUSPENSE_TYPE:
        return createFiberFromSuspense(pendingProps, mode, expirationTime, key);
      default:
        {
          if (typeof type === 'object' && type !== null) {
            switch (type.$$typeof) {
              case REACT_PROVIDER_TYPE:
                fiberTag = ContextProvider;
                break getTag;
              case REACT_CONTEXT_TYPE:
                // This is a consumer
                fiberTag = ContextConsumer;
                break getTag;
              case REACT_FORWARD_REF_TYPE:
                fiberTag = ForwardRef;
                break getTag;
              case REACT_MEMO_TYPE:
                fiberTag = MemoComponent;
                break getTag;
              case REACT_LAZY_TYPE:
                fiberTag = LazyComponent;
                resolvedType = null;
                break getTag;
            }
          }
          var info = '';
          {
            if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
              info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and " + 'named imports.';
            }
            var ownerName = owner ? getComponentName(owner.type) : null;
            if (ownerName) {
              info += '\n\nCheck the render method of `' + ownerName + '`.';
            }
          }
          invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info);
        }
    }
  }

  fiber = createFiber(fiberTag, pendingProps, key, mode);
  fiber.elementType = type;
  fiber.type = resolvedType;
  fiber.expirationTime = expirationTime;

  return fiber;
}

function createFiberFromElement(element, mode, expirationTime) {
  var owner = null;
  {
    owner = element._owner;
  }
  var type = element.type;
  var key = element.key;
  var pendingProps = element.props;
  var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, expirationTime);
  {
    fiber._debugSource = element._source;
    fiber._debugOwner = element._owner;
  }
  return fiber;
}

function createFiberFromFragment(elements, mode, expirationTime, key) {
  var fiber = createFiber(Fragment, elements, key, mode);
  fiber.expirationTime = expirationTime;
  return fiber;
}

function createFiberFromProfiler(pendingProps, mode, expirationTime, key) {
  {
    if (typeof pendingProps.id !== 'string' || typeof pendingProps.onRender !== 'function') {
      warningWithoutStack$1(false, 'Profiler must specify an "id" string and "onRender" function as props');
    }
  }

  var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode);
  // TODO: The Profiler fiber shouldn't have a type. It has a tag.
  fiber.elementType = REACT_PROFILER_TYPE;
  fiber.type = REACT_PROFILER_TYPE;
  fiber.expirationTime = expirationTime;

  return fiber;
}

function createFiberFromMode(pendingProps, mode, expirationTime, key) {
  var fiber = createFiber(Mode, pendingProps, key, mode);

  // TODO: The Mode fiber shouldn't have a type. It has a tag.
  var type = (mode & ConcurrentMode) === NoContext ? REACT_STRICT_MODE_TYPE : REACT_CONCURRENT_MODE_TYPE;
  fiber.elementType = type;
  fiber.type = type;

  fiber.expirationTime = expirationTime;
  return fiber;
}

function createFiberFromSuspense(pendingProps, mode, expirationTime, key) {
  var fiber = createFiber(SuspenseComponent, pendingProps, key, mode);

  // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.
  var type = REACT_SUSPENSE_TYPE;
  fiber.elementType = type;
  fiber.type = type;

  fiber.expirationTime = expirationTime;
  return fiber;
}

function createFiberFromText(content, mode, expirationTime) {
  var fiber = createFiber(HostText, content, null, mode);
  fiber.expirationTime = expirationTime;
  return fiber;
}

function createFiberFromHostInstanceForDeletion() {
  var fiber = createFiber(HostComponent, null, null, NoContext);
  // TODO: These should not need a type.
  fiber.elementType = 'DELETED';
  fiber.type = 'DELETED';
  return fiber;
}

function createFiberFromPortal(portal, mode, expirationTime) {
  var pendingProps = portal.children !== null ? portal.children : [];
  var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);
  fiber.expirationTime = expirationTime;
  fiber.stateNode = {
    containerInfo: portal.containerInfo,
    pendingChildren: null, // Used by persistent updates
    implementation: portal.implementation
  };
  return fiber;
}

// Used for stashing WIP properties to replay failed work in DEV.
function assignFiberPropertiesInDEV(target, source) {
  if (target === null) {
    // This Fiber's initial properties will always be overwritten.
    // We only use a Fiber to ensure the same hidden class so DEV isn't slow.
    target = createFiber(IndeterminateComponent, null, null, NoContext);
  }

  // This is intentionally written as a list of all properties.
  // We tried to use Object.assign() instead but this is called in
  // the hottest path, and Object.assign() was too slow:
  // https://github.com/facebook/react/issues/12502
  // This code is DEV-only so size is not a concern.

  target.tag = source.tag;
  target.key = source.key;
  target.elementType = source.elementType;
  target.type = source.type;
  target.stateNode = source.stateNode;
  target.return = source.return;
  target.child = source.child;
  target.sibling = source.sibling;
  target.index = source.index;
  target.ref = source.ref;
  target.pendingProps = source.pendingProps;
  target.memoizedProps = source.memoizedProps;
  target.updateQueue = source.updateQueue;
  target.memoizedState = source.memoizedState;
  target.contextDependencies = source.contextDependencies;
  target.mode = source.mode;
  target.effectTag = source.effectTag;
  target.nextEffect = source.nextEffect;
  target.firstEffect = source.firstEffect;
  target.lastEffect = source.lastEffect;
  target.expirationTime = source.expirationTime;
  target.childExpirationTime = source.childExpirationTime;
  target.alternate = source.alternate;
  if (enableProfilerTimer) {
    target.actualDuration = source.actualDuration;
    target.actualStartTime = source.actualStartTime;
    target.selfBaseDuration = source.selfBaseDuration;
    target.treeBaseDuration = source.treeBaseDuration;
  }
  target._debugID = source._debugID;
  target._debugSource = source._debugSource;
  target._debugOwner = source._debugOwner;
  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;
  target._debugHookTypes = source._debugHookTypes;
  return target;
}

// TODO: This should be lifted into the renderer.


// The following attributes are only used by interaction tracing builds.
// They enable interactions to be associated with their async work,
// And expose interaction metadata to the React DevTools Profiler plugin.
// Note that these attributes are only defined when the enableSchedulerTracing flag is enabled.


// Exported FiberRoot type includes all properties,
// To avoid requiring potentially error-prone :any casts throughout the project.
// Profiling properties are only safe to access in profiling builds (when enableSchedulerTracing is true).
// The types are defined separately within this file to ensure they stay in sync.
// (We don't have to use an inline :any cast when enableSchedulerTracing is disabled.)


function createFiberRoot(containerInfo, isConcurrent, hydrate) {
  // Cyclic construction. This cheats the type system right now because
  // stateNode is any.
  var uninitializedFiber = createHostRootFiber(isConcurrent);

  var root = void 0;
  if (enableSchedulerTracing) {
    root = {
      current: uninitializedFiber,
      containerInfo: containerInfo,
      pendingChildren: null,

      earliestPendingTime: NoWork,
      latestPendingTime: NoWork,
      earliestSuspendedTime: NoWork,
      latestSuspendedTime: NoWork,
      latestPingedTime: NoWork,

      pingCache: null,

      didError: false,

      pendingCommitExpirationTime: NoWork,
      finishedWork: null,
      timeoutHandle: noTimeout,
      context: null,
      pendingContext: null,
      hydrate: hydrate,
      nextExpirationTimeToWorkOn: NoWork,
      expirationTime: NoWork,
      firstBatch: null,
      nextScheduledRoot: null,

      interactionThreadID: tracing.unstable_getThreadID(),
      memoizedInteractions: new Set(),
      pendingInteractionMap: new Map()
    };
  } else {
    root = {
      current: uninitializedFiber,
      containerInfo: containerInfo,
      pendingChildren: null,

      pingCache: null,

      earliestPendingTime: NoWork,
      latestPendingTime: NoWork,
      earliestSuspendedTime: NoWork,
      latestSuspendedTime: NoWork,
      latestPingedTime: NoWork,

      didError: false,

      pendingCommitExpirationTime: NoWork,
      finishedWork: null,
      timeoutHandle: noTimeout,
      context: null,
      pendingContext: null,
      hydrate: hydrate,
      nextExpirationTimeToWorkOn: NoWork,
      expirationTime: NoWork,
      firstBatch: null,
      nextScheduledRoot: null
    };
  }

  uninitializedFiber.stateNode = root;

  // The reason for the way the Flow types are structured in this file,
  // Is to avoid needing :any casts everywhere interaction tracing fields are used.
  // Unfortunately that requires an :any cast for non-interaction tracing capable builds.
  // $FlowFixMe Remove this :any cast and replace it with something better.
  return root;
}

/**
 * Forked from fbjs/warning:
 * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
 *
 * Only change is we use console.warn instead of console.error,
 * and do nothing when 'console' is not supported.
 * This really simplifies the code.
 * ---
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var lowPriorityWarning = function () {};

{
  var printWarning = function (format) {
    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }

    var argIndex = 0;
    var message = 'Warning: ' + format.replace(/%s/g, function () {
      return args[argIndex++];
    });
    if (typeof console !== 'undefined') {
      console.warn(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };

  lowPriorityWarning = function (condition, format) {
    if (format === undefined) {
      throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');
    }
    if (!condition) {
      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
        args[_key2 - 2] = arguments[_key2];
      }

      printWarning.apply(undefined, [format].concat(args));
    }
  };
}

var lowPriorityWarning$1 = lowPriorityWarning;

var ReactStrictModeWarnings = {
  discardPendingWarnings: function () {},
  flushPendingDeprecationWarnings: function () {},
  flushPendingUnsafeLifecycleWarnings: function () {},
  recordDeprecationWarnings: function (fiber, instance) {},
  recordUnsafeLifecycleWarnings: function (fiber, instance) {},
  recordLegacyContextWarning: function (fiber, instance) {},
  flushLegacyContextWarning: function () {}
};

{
  var LIFECYCLE_SUGGESTIONS = {
    UNSAFE_componentWillMount: 'componentDidMount',
    UNSAFE_componentWillReceiveProps: 'static getDerivedStateFromProps',
    UNSAFE_componentWillUpdate: 'componentDidUpdate'
  };

  var pendingComponentWillMountWarnings = [];
  var pendingComponentWillReceivePropsWarnings = [];
  var pendingComponentWillUpdateWarnings = [];
  var pendingUnsafeLifecycleWarnings = new Map();
  var pendingLegacyContextWarning = new Map();

  // Tracks components we have already warned about.
  var didWarnAboutDeprecatedLifecycles = new Set();
  var didWarnAboutUnsafeLifecycles = new Set();
  var didWarnAboutLegacyContext = new Set();

  var setToSortedString = function (set) {
    var array = [];
    set.forEach(function (value) {
      array.push(value);
    });
    return array.sort().join(', ');
  };

  ReactStrictModeWarnings.discardPendingWarnings = function () {
    pendingComponentWillMountWarnings = [];
    pendingComponentWillReceivePropsWarnings = [];
    pendingComponentWillUpdateWarnings = [];
    pendingUnsafeLifecycleWarnings = new Map();
    pendingLegacyContextWarning = new Map();
  };

  ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {
    pendingUnsafeLifecycleWarnings.forEach(function (lifecycleWarningsMap, strictRoot) {
      var lifecyclesWarningMessages = [];

      Object.keys(lifecycleWarningsMap).forEach(function (lifecycle) {
        var lifecycleWarnings = lifecycleWarningsMap[lifecycle];
        if (lifecycleWarnings.length > 0) {
          var componentNames = new Set();
          lifecycleWarnings.forEach(function (fiber) {
            componentNames.add(getComponentName(fiber.type) || 'Component');
            didWarnAboutUnsafeLifecycles.add(fiber.type);
          });

          var formatted = lifecycle.replace('UNSAFE_', '');
          var suggestion = LIFECYCLE_SUGGESTIONS[lifecycle];
          var sortedComponentNames = setToSortedString(componentNames);

          lifecyclesWarningMessages.push(formatted + ': Please update the following components to use ' + (suggestion + ' instead: ' + sortedComponentNames));
        }
      });

      if (lifecyclesWarningMessages.length > 0) {
        var strictRootComponentStack = getStackByFiberInDevAndProd(strictRoot);

        warningWithoutStack$1(false, 'Unsafe lifecycle methods were found within a strict-mode tree:%s' + '\n\n%s' + '\n\nLearn more about this warning here:' + '\nhttps://fb.me/react-strict-mode-warnings', strictRootComponentStack, lifecyclesWarningMessages.join('\n\n'));
      }
    });

    pendingUnsafeLifecycleWarnings = new Map();
  };

  var findStrictRoot = function (fiber) {
    var maybeStrictRoot = null;

    var node = fiber;
    while (node !== null) {
      if (node.mode & StrictMode) {
        maybeStrictRoot = node;
      }
      node = node.return;
    }

    return maybeStrictRoot;
  };

  ReactStrictModeWarnings.flushPendingDeprecationWarnings = function () {
    if (pendingComponentWillMountWarnings.length > 0) {
      var uniqueNames = new Set();
      pendingComponentWillMountWarnings.forEach(function (fiber) {
        uniqueNames.add(getComponentName(fiber.type) || 'Component');
        didWarnAboutDeprecatedLifecycles.add(fiber.type);
      });

      var sortedNames = setToSortedString(uniqueNames);

      lowPriorityWarning$1(false, 'componentWillMount is deprecated and will be removed in the next major version. ' + 'Use componentDidMount instead. As a temporary workaround, ' + 'you can rename to UNSAFE_componentWillMount.' + '\n\nPlease update the following components: %s' + '\n\nLearn more about this warning here:' + '\nhttps://fb.me/react-async-component-lifecycle-hooks', sortedNames);

      pendingComponentWillMountWarnings = [];
    }

    if (pendingComponentWillReceivePropsWarnings.length > 0) {
      var _uniqueNames = new Set();
      pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {
        _uniqueNames.add(getComponentName(fiber.type) || 'Component');
        didWarnAboutDeprecatedLifecycles.add(fiber.type);
      });

      var _sortedNames = setToSortedString(_uniqueNames);

      lowPriorityWarning$1(false, 'componentWillReceiveProps is deprecated and will be removed in the next major version. ' + 'Use static getDerivedStateFromProps instead.' + '\n\nPlease update the following components: %s' + '\n\nLearn more about this warning here:' + '\nhttps://fb.me/react-async-component-lifecycle-hooks', _sortedNames);

      pendingComponentWillReceivePropsWarnings = [];
    }

    if (pendingComponentWillUpdateWarnings.length > 0) {
      var _uniqueNames2 = new Set();
      pendingComponentWillUpdateWarnings.forEach(function (fiber) {
        _uniqueNames2.add(getComponentName(fiber.type) || 'Component');
        didWarnAboutDeprecatedLifecycles.add(fiber.type);
      });

      var _sortedNames2 = setToSortedString(_uniqueNames2);

      lowPriorityWarning$1(false, 'componentWillUpdate is deprecated and will be removed in the next major version. ' + 'Use componentDidUpdate instead. As a temporary workaround, ' + 'you can rename to UNSAFE_componentWillUpdate.' + '\n\nPlease update the following components: %s' + '\n\nLearn more about this warning here:' + '\nhttps://fb.me/react-async-component-lifecycle-hooks', _sortedNames2);

      pendingComponentWillUpdateWarnings = [];
    }
  };

  ReactStrictModeWarnings.recordDeprecationWarnings = function (fiber, instance) {
    // Dedup strategy: Warn once per component.
    if (didWarnAboutDeprecatedLifecycles.has(fiber.type)) {
      return;
    }

    // Don't warn about react-lifecycles-compat polyfilled components.
    if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {
      pendingComponentWillMountWarnings.push(fiber);
    }
    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {
      pendingComponentWillReceivePropsWarnings.push(fiber);
    }
    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {
      pendingComponentWillUpdateWarnings.push(fiber);
    }
  };

  ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {
    var strictRoot = findStrictRoot(fiber);
    if (strictRoot === null) {
      warningWithoutStack$1(false, 'Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');
      return;
    }

    // Dedup strategy: Warn once per component.
    // This is difficult to track any other way since component names
    // are often vague and are likely to collide between 3rd party libraries.
    // An expand property is probably okay to use here since it's DEV-only,
    // and will only be set in the event of serious warnings.
    if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {
      return;
    }

    var warningsForRoot = void 0;
    if (!pendingUnsafeLifecycleWarnings.has(strictRoot)) {
      warningsForRoot = {
        UNSAFE_componentWillMount: [],
        UNSAFE_componentWillReceiveProps: [],
        UNSAFE_componentWillUpdate: []
      };

      pendingUnsafeLifecycleWarnings.set(strictRoot, warningsForRoot);
    } else {
      warningsForRoot = pendingUnsafeLifecycleWarnings.get(strictRoot);
    }

    var unsafeLifecycles = [];
    if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillMount === 'function') {
      unsafeLifecycles.push('UNSAFE_componentWillMount');
    }
    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillReceiveProps === 'function') {
      unsafeLifecycles.push('UNSAFE_componentWillReceiveProps');
    }
    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillUpdate === 'function') {
      unsafeLifecycles.push('UNSAFE_componentWillUpdate');
    }

    if (unsafeLifecycles.length > 0) {
      unsafeLifecycles.forEach(function (lifecycle) {
        warningsForRoot[lifecycle].push(fiber);
      });
    }
  };

  ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {
    var strictRoot = findStrictRoot(fiber);
    if (strictRoot === null) {
      warningWithoutStack$1(false, 'Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');
      return;
    }

    // Dedup strategy: Warn once per component.
    if (didWarnAboutLegacyContext.has(fiber.type)) {
      return;
    }

    var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);

    if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {
      if (warningsForRoot === undefined) {
        warningsForRoot = [];
        pendingLegacyContextWarning.set(strictRoot, warningsForRoot);
      }
      warningsForRoot.push(fiber);
    }
  };

  ReactStrictModeWarnings.flushLegacyContextWarning = function () {
    pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {
      var uniqueNames = new Set();
      fiberArray.forEach(function (fiber) {
        uniqueNames.add(getComponentName(fiber.type) || 'Component');
        didWarnAboutLegacyContext.add(fiber.type);
      });

      var sortedNames = setToSortedString(uniqueNames);
      var strictRootComponentStack = getStackByFiberInDevAndProd(strictRoot);

      warningWithoutStack$1(false, 'Legacy context API has been detected within a strict-mode tree: %s' + '\n\nPlease update the following components: %s' + '\n\nLearn more about this warning here:' + '\nhttps://fb.me/react-strict-mode-warnings', strictRootComponentStack, sortedNames);
    });
  };
}

// This lets us hook into Fiber to debug what it's doing.
// See https://github.com/facebook/react/pull/8033.
// This is not part of the public API, not even for React DevTools.
// You may only inject a debugTool if you work on React Fiber itself.
var ReactFiberInstrumentation = {
  debugTool: null
};

var ReactFiberInstrumentation_1 = ReactFiberInstrumentation;

// TODO: Offscreen updates should never suspend. However, a promise that
// suspended inside an offscreen subtree should be able to ping at the priority
// of the outer render.

function markPendingPriorityLevel(root, expirationTime) {
  // If there's a gap between completing a failed root and retrying it,
  // additional updates may be scheduled. Clear `didError`, in case the update
  // is sufficient to fix the error.
  root.didError = false;

  // Update the latest and earliest pending times
  var earliestPendingTime = root.earliestPendingTime;
  if (earliestPendingTime === NoWork) {
    // No other pending updates.
    root.earliestPendingTime = root.latestPendingTime = expirationTime;
  } else {
    if (earliestPendingTime < expirationTime) {
      // This is the earliest pending update.
      root.earliestPendingTime = expirationTime;
    } else {
      var latestPendingTime = root.latestPendingTime;
      if (latestPendingTime > expirationTime) {
        // This is the latest pending update
        root.latestPendingTime = expirationTime;
      }
    }
  }
  findNextExpirationTimeToWorkOn(expirationTime, root);
}

function markCommittedPriorityLevels(root, earliestRemainingTime) {
  root.didError = false;

  if (earliestRemainingTime === NoWork) {
    // Fast path. There's no remaining work. Clear everything.
    root.earliestPendingTime = NoWork;
    root.latestPendingTime = NoWork;
    root.earliestSuspendedTime = NoWork;
    root.latestSuspendedTime = NoWork;
    root.latestPingedTime = NoWork;
    findNextExpirationTimeToWorkOn(NoWork, root);
    return;
  }

  if (earliestRemainingTime < root.latestPingedTime) {
    root.latestPingedTime = NoWork;
  }

  // Let's see if the previous latest known pending level was just flushed.
  var latestPendingTime = root.latestPendingTime;
  if (latestPendingTime !== NoWork) {
    if (latestPendingTime > earliestRemainingTime) {
      // We've flushed all the known pending levels.
      root.earliestPendingTime = root.latestPendingTime = NoWork;
    } else {
      var earliestPendingTime = root.earliestPendingTime;
      if (earliestPendingTime > earliestRemainingTime) {
        // We've flushed the earliest known pending level. Set this to the
        // latest pending time.
        root.earliestPendingTime = root.latestPendingTime;
      }
    }
  }

  // Now let's handle the earliest remaining level in the whole tree. We need to
  // decide whether to treat it as a pending level or as suspended. Check
  // it falls within the range of known suspended levels.

  var earliestSuspendedTime = root.earliestSuspendedTime;
  if (earliestSuspendedTime === NoWork) {
    // There's no suspended work. Treat the earliest remaining level as a
    // pending level.
    markPendingPriorityLevel(root, earliestRemainingTime);
    findNextExpirationTimeToWorkOn(NoWork, root);
    return;
  }

  var latestSuspendedTime = root.latestSuspendedTime;
  if (earliestRemainingTime < latestSuspendedTime) {
    // The earliest remaining level is later than all the suspended work. That
    // means we've flushed all the suspended work.
    root.earliestSuspendedTime = NoWork;
    root.latestSuspendedTime = NoWork;
    root.latestPingedTime = NoWork;

    // There's no suspended work. Treat the earliest remaining level as a
    // pending level.
    markPendingPriorityLevel(root, earliestRemainingTime);
    findNextExpirationTimeToWorkOn(NoWork, root);
    return;
  }

  if (earliestRemainingTime > earliestSuspendedTime) {
    // The earliest remaining time is earlier than all the suspended work.
    // Treat it as a pending update.
    markPendingPriorityLevel(root, earliestRemainingTime);
    findNextExpirationTimeToWorkOn(NoWork, root);
    return;
  }

  // The earliest remaining time falls within the range of known suspended
  // levels. We should treat this as suspended work.
  findNextExpirationTimeToWorkOn(NoWork, root);
}

function hasLowerPriorityWork(root, erroredExpirationTime) {
  var latestPendingTime = root.latestPendingTime;
  var latestSuspendedTime = root.latestSuspendedTime;
  var latestPingedTime = root.latestPingedTime;
  return latestPendingTime !== NoWork && latestPendingTime < erroredExpirationTime || latestSuspendedTime !== NoWork && latestSuspendedTime < erroredExpirationTime || latestPingedTime !== NoWork && latestPingedTime < erroredExpirationTime;
}

function isPriorityLevelSuspended(root, expirationTime) {
  var earliestSuspendedTime = root.earliestSuspendedTime;
  var latestSuspendedTime = root.latestSuspendedTime;
  return earliestSuspendedTime !== NoWork && expirationTime <= earliestSuspendedTime && expirationTime >= latestSuspendedTime;
}

function markSuspendedPriorityLevel(root, suspendedTime) {
  root.didError = false;
  clearPing(root, suspendedTime);

  // First, check the known pending levels and update them if needed.
  var earliestPendingTime = root.earliestPendingTime;
  var latestPendingTime = root.latestPendingTime;
  if (earliestPendingTime === suspendedTime) {
    if (latestPendingTime === suspendedTime) {
      // Both known pending levels were suspended. Clear them.
      root.earliestPendingTime = root.latestPendingTime = NoWork;
    } else {
      // The earliest pending level was suspended. Clear by setting it to the
      // latest pending level.
      root.earliestPendingTime = latestPendingTime;
    }
  } else if (latestPendingTime === suspendedTime) {
    // The latest pending level was suspended. Clear by setting it to the
    // latest pending level.
    root.latestPendingTime = earliestPendingTime;
  }

  // Finally, update the known suspended levels.
  var earliestSuspendedTime = root.earliestSuspendedTime;
  var latestSuspendedTime = root.latestSuspendedTime;
  if (earliestSuspendedTime === NoWork) {
    // No other suspended levels.
    root.earliestSuspendedTime = root.latestSuspendedTime = suspendedTime;
  } else {
    if (earliestSuspendedTime < suspendedTime) {
      // This is the earliest suspended level.
      root.earliestSuspendedTime = suspendedTime;
    } else if (latestSuspendedTime > suspendedTime) {
      // This is the latest suspended level
      root.latestSuspendedTime = suspendedTime;
    }
  }

  findNextExpirationTimeToWorkOn(suspendedTime, root);
}

function markPingedPriorityLevel(root, pingedTime) {
  root.didError = false;

  // TODO: When we add back resuming, we need to ensure the progressed work
  // is thrown out and not reused during the restarted render. One way to
  // invalidate the progressed work is to restart at expirationTime + 1.
  var latestPingedTime = root.latestPingedTime;
  if (latestPingedTime === NoWork || latestPingedTime > pingedTime) {
    root.latestPingedTime = pingedTime;
  }
  findNextExpirationTimeToWorkOn(pingedTime, root);
}

function clearPing(root, completedTime) {
  var latestPingedTime = root.latestPingedTime;
  if (latestPingedTime >= completedTime) {
    root.latestPingedTime = NoWork;
  }
}

function findEarliestOutstandingPriorityLevel(root, renderExpirationTime) {
  var earliestExpirationTime = renderExpirationTime;

  var earliestPendingTime = root.earliestPendingTime;
  var earliestSuspendedTime = root.earliestSuspendedTime;
  if (earliestPendingTime > earliestExpirationTime) {
    earliestExpirationTime = earliestPendingTime;
  }
  if (earliestSuspendedTime > earliestExpirationTime) {
    earliestExpirationTime = earliestSuspendedTime;
  }
  return earliestExpirationTime;
}

function didExpireAtExpirationTime(root, currentTime) {
  var expirationTime = root.expirationTime;
  if (expirationTime !== NoWork && currentTime <= expirationTime) {
    // The root has expired. Flush all work up to the current time.
    root.nextExpirationTimeToWorkOn = currentTime;
  }
}

function findNextExpirationTimeToWorkOn(completedExpirationTime, root) {
  var earliestSuspendedTime = root.earliestSuspendedTime;
  var latestSuspendedTime = root.latestSuspendedTime;
  var earliestPendingTime = root.earliestPendingTime;
  var latestPingedTime = root.latestPingedTime;

  // Work on the earliest pending time. Failing that, work on the latest
  // pinged time.
  var nextExpirationTimeToWorkOn = earliestPendingTime !== NoWork ? earliestPendingTime : latestPingedTime;

  // If there is no pending or pinged work, check if there's suspended work
  // that's lower priority than what we just completed.
  if (nextExpirationTimeToWorkOn === NoWork && (completedExpirationTime === NoWork || latestSuspendedTime < completedExpirationTime)) {
    // The lowest priority suspended work is the work most likely to be
    // committed next. Let's start rendering it again, so that if it times out,
    // it's ready to commit.
    nextExpirationTimeToWorkOn = latestSuspendedTime;
  }

  var expirationTime = nextExpirationTimeToWorkOn;
  if (expirationTime !== NoWork && earliestSuspendedTime > expirationTime) {
    // Expire using the earliest known expiration time.
    expirationTime = earliestSuspendedTime;
  }

  root.nextExpirationTimeToWorkOn = nextExpirationTimeToWorkOn;
  root.expirationTime = expirationTime;
}

function resolveDefaultProps(Component, baseProps) {
  if (Component && Component.defaultProps) {
    // Resolve default props. Taken from ReactElement
    var props = _assign({}, baseProps);
    var defaultProps = Component.defaultProps;
    for (var propName in defaultProps) {
      if (props[propName] === undefined) {
        props[propName] = defaultProps[propName];
      }
    }
    return props;
  }
  return baseProps;
}

function readLazyComponentType(lazyComponent) {
  var status = lazyComponent._status;
  var result = lazyComponent._result;
  switch (status) {
    case Resolved:
      {
        var Component = result;
        return Component;
      }
    case Rejected:
      {
        var error = result;
        throw error;
      }
    case Pending:
      {
        var thenable = result;
        throw thenable;
      }
    default:
      {
        lazyComponent._status = Pending;
        var ctor = lazyComponent._ctor;
        var _thenable = ctor();
        _thenable.then(function (moduleObject) {
          if (lazyComponent._status === Pending) {
            var defaultExport = moduleObject.default;
            {
              if (defaultExport === undefined) {
                warning$1(false, 'lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\n\nYour code should look like: \n  ' + "const MyComponent = lazy(() => import('./MyComponent'))", moduleObject);
              }
            }
            lazyComponent._status = Resolved;
            lazyComponent._result = defaultExport;
          }
        }, function (error) {
          if (lazyComponent._status === Pending) {
            lazyComponent._status = Rejected;
            lazyComponent._result = error;
          }
        });
        // Handle synchronous thenables.
        switch (lazyComponent._status) {
          case Resolved:
            return lazyComponent._result;
          case Rejected:
            throw lazyComponent._result;
        }
        lazyComponent._result = _thenable;
        throw _thenable;
      }
  }
}

var fakeInternalInstance = {};
var isArray$1 = Array.isArray;

// React.Component uses a shared frozen object by default.
// We'll use it to determine whether we need to initialize legacy refs.
var emptyRefsObject = new React.Component().refs;

var didWarnAboutStateAssignmentForComponent = void 0;
var didWarnAboutUninitializedState = void 0;
var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = void 0;
var didWarnAboutLegacyLifecyclesAndDerivedState = void 0;
var didWarnAboutUndefinedDerivedState = void 0;
var warnOnUndefinedDerivedState = void 0;
var warnOnInvalidCallback$1 = void 0;
var didWarnAboutDirectlyAssigningPropsToState = void 0;
var didWarnAboutContextTypeAndContextTypes = void 0;
var didWarnAboutInvalidateContextType = void 0;

{
  didWarnAboutStateAssignmentForComponent = new Set();
  didWarnAboutUninitializedState = new Set();
  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();
  didWarnAboutLegacyLifecyclesAndDerivedState = new Set();
  didWarnAboutDirectlyAssigningPropsToState = new Set();
  didWarnAboutUndefinedDerivedState = new Set();
  didWarnAboutContextTypeAndContextTypes = new Set();
  didWarnAboutInvalidateContextType = new Set();

  var didWarnOnInvalidCallback = new Set();

  warnOnInvalidCallback$1 = function (callback, callerName) {
    if (callback === null || typeof callback === 'function') {
      return;
    }
    var key = callerName + '_' + callback;
    if (!didWarnOnInvalidCallback.has(key)) {
      didWarnOnInvalidCallback.add(key);
      warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);
    }
  };

  warnOnUndefinedDerivedState = function (type, partialState) {
    if (partialState === undefined) {
      var componentName = getComponentName(type) || 'Component';
      if (!didWarnAboutUndefinedDerivedState.has(componentName)) {
        didWarnAboutUndefinedDerivedState.add(componentName);
        warningWithoutStack$1(false, '%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);
      }
    }
  };

  // This is so gross but it's at least non-critical and can be removed if
  // it causes problems. This is meant to give a nicer error message for
  // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,
  // ...)) which otherwise throws a "_processChildContext is not a function"
  // exception.
  Object.defineProperty(fakeInternalInstance, '_processChildContext', {
    enumerable: false,
    value: function () {
      invariant(false, '_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn\'t supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).');
    }
  });
  Object.freeze(fakeInternalInstance);
}

function applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {
  var prevState = workInProgress.memoizedState;

  {
    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
      // Invoke the function an extra time to help detect side-effects.
      getDerivedStateFromProps(nextProps, prevState);
    }
  }

  var partialState = getDerivedStateFromProps(nextProps, prevState);

  {
    warnOnUndefinedDerivedState(ctor, partialState);
  }
  // Merge the partial state and the previous state.
  var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);
  workInProgress.memoizedState = memoizedState;

  // Once the update queue is empty, persist the derived state onto the
  // base state.
  var updateQueue = workInProgress.updateQueue;
  if (updateQueue !== null && workInProgress.expirationTime === NoWork) {
    updateQueue.baseState = memoizedState;
  }
}

var classComponentUpdater = {
  isMounted: isMounted,
  enqueueSetState: function (inst, payload, callback) {
    var fiber = get(inst);
    var currentTime = requestCurrentTime();
    var expirationTime = computeExpirationForFiber(currentTime, fiber);

    var update = createUpdate(expirationTime);
    update.payload = payload;
    if (callback !== undefined && callback !== null) {
      {
        warnOnInvalidCallback$1(callback, 'setState');
      }
      update.callback = callback;
    }

    flushPassiveEffects();
    enqueueUpdate(fiber, update);
    scheduleWork(fiber, expirationTime);
  },
  enqueueReplaceState: function (inst, payload, callback) {
    var fiber = get(inst);
    var currentTime = requestCurrentTime();
    var expirationTime = computeExpirationForFiber(currentTime, fiber);

    var update = createUpdate(expirationTime);
    update.tag = ReplaceState;
    update.payload = payload;

    if (callback !== undefined && callback !== null) {
      {
        warnOnInvalidCallback$1(callback, 'replaceState');
      }
      update.callback = callback;
    }

    flushPassiveEffects();
    enqueueUpdate(fiber, update);
    scheduleWork(fiber, expirationTime);
  },
  enqueueForceUpdate: function (inst, callback) {
    var fiber = get(inst);
    var currentTime = requestCurrentTime();
    var expirationTime = computeExpirationForFiber(currentTime, fiber);

    var update = createUpdate(expirationTime);
    update.tag = ForceUpdate;

    if (callback !== undefined && callback !== null) {
      {
        warnOnInvalidCallback$1(callback, 'forceUpdate');
      }
      update.callback = callback;
    }

    flushPassiveEffects();
    enqueueUpdate(fiber, update);
    scheduleWork(fiber, expirationTime);
  }
};

function checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {
  var instance = workInProgress.stateNode;
  if (typeof instance.shouldComponentUpdate === 'function') {
    startPhaseTimer(workInProgress, 'shouldComponentUpdate');
    var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);
    stopPhaseTimer();

    {
      !(shouldUpdate !== undefined) ? warningWithoutStack$1(false, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component') : void 0;
    }

    return shouldUpdate;
  }

  if (ctor.prototype && ctor.prototype.isPureReactComponent) {
    return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);
  }

  return true;
}

function checkClassInstance(workInProgress, ctor, newProps) {
  var instance = workInProgress.stateNode;
  {
    var name = getComponentName(ctor) || 'Component';
    var renderPresent = instance.render;

    if (!renderPresent) {
      if (ctor.prototype && typeof ctor.prototype.render === 'function') {
        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);
      } else {
        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);
      }
    }

    var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;
    !noGetInitialStateOnES6 ? warningWithoutStack$1(false, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name) : void 0;
    var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;
    !noGetDefaultPropsOnES6 ? warningWithoutStack$1(false, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name) : void 0;
    var noInstancePropTypes = !instance.propTypes;
    !noInstancePropTypes ? warningWithoutStack$1(false, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name) : void 0;
    var noInstanceContextType = !instance.contextType;
    !noInstanceContextType ? warningWithoutStack$1(false, 'contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name) : void 0;
    var noInstanceContextTypes = !instance.contextTypes;
    !noInstanceContextTypes ? warningWithoutStack$1(false, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name) : void 0;

    if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {
      didWarnAboutContextTypeAndContextTypes.add(ctor);
      warningWithoutStack$1(false, '%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);
    }

    var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';
    !noComponentShouldUpdate ? warningWithoutStack$1(false, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name) : void 0;
    if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {
      warningWithoutStack$1(false, '%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');
    }
    var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';
    !noComponentDidUnmount ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name) : void 0;
    var noComponentDidReceiveProps = typeof instance.componentDidReceiveProps !== 'function';
    !noComponentDidReceiveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name) : void 0;
    var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';
    !noComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name) : void 0;
    var noUnsafeComponentWillRecieveProps = typeof instance.UNSAFE_componentWillRecieveProps !== 'function';
    !noUnsafeComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name) : void 0;
    var hasMutatedProps = instance.props !== newProps;
    !(instance.props === undefined || !hasMutatedProps) ? warningWithoutStack$1(false, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name) : void 0;
    var noInstanceDefaultProps = !instance.defaultProps;
    !noInstanceDefaultProps ? warningWithoutStack$1(false, 'Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name) : void 0;

    if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {
      didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);
      warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));
    }

    var noInstanceGetDerivedStateFromProps = typeof instance.getDerivedStateFromProps !== 'function';
    !noInstanceGetDerivedStateFromProps ? warningWithoutStack$1(false, '%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;
    var noInstanceGetDerivedStateFromCatch = typeof instance.getDerivedStateFromError !== 'function';
    !noInstanceGetDerivedStateFromCatch ? warningWithoutStack$1(false, '%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;
    var noStaticGetSnapshotBeforeUpdate = typeof ctor.getSnapshotBeforeUpdate !== 'function';
    !noStaticGetSnapshotBeforeUpdate ? warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name) : void 0;
    var _state = instance.state;
    if (_state && (typeof _state !== 'object' || isArray$1(_state))) {
      warningWithoutStack$1(false, '%s.state: must be set to an object or null', name);
    }
    if (typeof instance.getChildContext === 'function') {
      !(typeof ctor.childContextTypes === 'object') ? warningWithoutStack$1(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name) : void 0;
    }
  }
}

function adoptClassInstance(workInProgress, instance) {
  instance.updater = classComponentUpdater;
  workInProgress.stateNode = instance;
  // The instance needs access to the fiber so that it can schedule updates
  set(instance, workInProgress);
  {
    instance._reactInternalInstance = fakeInternalInstance;
  }
}

function constructClassInstance(workInProgress, ctor, props, renderExpirationTime) {
  var isLegacyContextConsumer = false;
  var unmaskedContext = emptyContextObject;
  var context = null;
  var contextType = ctor.contextType;
  if (typeof contextType === 'object' && contextType !== null) {
    {
      if (contextType.$$typeof !== REACT_CONTEXT_TYPE && !didWarnAboutInvalidateContextType.has(ctor)) {
        didWarnAboutInvalidateContextType.add(ctor);
        warningWithoutStack$1(false, '%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext(). ' + 'Did you accidentally pass the Context.Provider instead?', getComponentName(ctor) || 'Component');
      }
    }

    context = readContext(contextType);
  } else {
    unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);
    var contextTypes = ctor.contextTypes;
    isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;
    context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;
  }

  // Instantiate twice to help detect side-effects.
  {
    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
      new ctor(props, context); // eslint-disable-line no-new
    }
  }

  var instance = new ctor(props, context);
  var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;
  adoptClassInstance(workInProgress, instance);

  {
    if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {
      var componentName = getComponentName(ctor) || 'Component';
      if (!didWarnAboutUninitializedState.has(componentName)) {
        didWarnAboutUninitializedState.add(componentName);
        warningWithoutStack$1(false, '`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);
      }
    }

    // If new component APIs are defined, "unsafe" lifecycles won't be called.
    // Warn about these lifecycles if they are present.
    // Don't warn about react-lifecycles-compat polyfilled methods though.
    if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {
      var foundWillMountName = null;
      var foundWillReceivePropsName = null;
      var foundWillUpdateName = null;
      if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {
        foundWillMountName = 'componentWillMount';
      } else if (typeof instance.UNSAFE_componentWillMount === 'function') {
        foundWillMountName = 'UNSAFE_componentWillMount';
      }
      if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {
        foundWillReceivePropsName = 'componentWillReceiveProps';
      } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {
        foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
      }
      if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {
        foundWillUpdateName = 'componentWillUpdate';
      } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {
        foundWillUpdateName = 'UNSAFE_componentWillUpdate';
      }
      if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {
        var _componentName = getComponentName(ctor) || 'Component';
        var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';
        if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {
          didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);
          warningWithoutStack$1(false, 'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\n' + 'The above lifecycles should be removed. Learn more about this warning here:\n' + 'https://fb.me/react-async-component-lifecycle-hooks', _componentName, newApiName, foundWillMountName !== null ? '\n  ' + foundWillMountName : '', foundWillReceivePropsName !== null ? '\n  ' + foundWillReceivePropsName : '', foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '');
        }
      }
    }
  }

  // Cache unmasked context so we can avoid recreating masked context unless necessary.
  // ReactFiberContext usually updates this cache but can't for newly-created instances.
  if (isLegacyContextConsumer) {
    cacheContext(workInProgress, unmaskedContext, context);
  }

  return instance;
}

function callComponentWillMount(workInProgress, instance) {
  startPhaseTimer(workInProgress, 'componentWillMount');
  var oldState = instance.state;

  if (typeof instance.componentWillMount === 'function') {
    instance.componentWillMount();
  }
  if (typeof instance.UNSAFE_componentWillMount === 'function') {
    instance.UNSAFE_componentWillMount();
  }

  stopPhaseTimer();

  if (oldState !== instance.state) {
    {
      warningWithoutStack$1(false, '%s.componentWillMount(): Assigning directly to this.state is ' + "deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');
    }
    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);
  }
}

function callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {
  var oldState = instance.state;
  startPhaseTimer(workInProgress, 'componentWillReceiveProps');
  if (typeof instance.componentWillReceiveProps === 'function') {
    instance.componentWillReceiveProps(newProps, nextContext);
  }
  if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {
    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);
  }
  stopPhaseTimer();

  if (instance.state !== oldState) {
    {
      var componentName = getComponentName(workInProgress.type) || 'Component';
      if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {
        didWarnAboutStateAssignmentForComponent.add(componentName);
        warningWithoutStack$1(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', componentName);
      }
    }
    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);
  }
}

// Invokes the mount life-cycles on a previously never rendered instance.
function mountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {
  {
    checkClassInstance(workInProgress, ctor, newProps);
  }

  var instance = workInProgress.stateNode;
  instance.props = newProps;
  instance.state = workInProgress.memoizedState;
  instance.refs = emptyRefsObject;

  var contextType = ctor.contextType;
  if (typeof contextType === 'object' && contextType !== null) {
    instance.context = readContext(contextType);
  } else {
    var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);
    instance.context = getMaskedContext(workInProgress, unmaskedContext);
  }

  {
    if (instance.state === newProps) {
      var componentName = getComponentName(ctor) || 'Component';
      if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {
        didWarnAboutDirectlyAssigningPropsToState.add(componentName);
        warningWithoutStack$1(false, '%s: It is not recommended to assign props directly to state ' + "because updates to props won't be reflected in state. " + 'In most cases, it is better to use props directly.', componentName);
      }
    }

    if (workInProgress.mode & StrictMode) {
      ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);

      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);
    }

    if (warnAboutDeprecatedLifecycles) {
      ReactStrictModeWarnings.recordDeprecationWarnings(workInProgress, instance);
    }
  }

  var updateQueue = workInProgress.updateQueue;
  if (updateQueue !== null) {
    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);
    instance.state = workInProgress.memoizedState;
  }

  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;
  if (typeof getDerivedStateFromProps === 'function') {
    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);
    instance.state = workInProgress.memoizedState;
  }

  // In order to support react-lifecycles-compat polyfilled components,
  // Unsafe lifecycles should not be invoked for components using the new APIs.
  if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {
    callComponentWillMount(workInProgress, instance);
    // If we had additional state updates during this life-cycle, let's
    // process them now.
    updateQueue = workInProgress.updateQueue;
    if (updateQueue !== null) {
      processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);
      instance.state = workInProgress.memoizedState;
    }
  }

  if (typeof instance.componentDidMount === 'function') {
    workInProgress.effectTag |= Update;
  }
}

function resumeMountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {
  var instance = workInProgress.stateNode;

  var oldProps = workInProgress.memoizedProps;
  instance.props = oldProps;

  var oldContext = instance.context;
  var contextType = ctor.contextType;
  var nextContext = void 0;
  if (typeof contextType === 'object' && contextType !== null) {
    nextContext = readContext(contextType);
  } else {
    var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);
    nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);
  }

  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;
  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';

  // Note: During these life-cycles, instance.props/instance.state are what
  // ever the previously attempted to render - not the "current". However,
  // during componentDidUpdate we pass the "current" props.

  // In order to support react-lifecycles-compat polyfilled components,
  // Unsafe lifecycles should not be invoked for components using the new APIs.
  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {
    if (oldProps !== newProps || oldContext !== nextContext) {
      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);
    }
  }

  resetHasForceUpdateBeforeProcessing();

  var oldState = workInProgress.memoizedState;
  var newState = instance.state = oldState;
  var updateQueue = workInProgress.updateQueue;
  if (updateQueue !== null) {
    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);
    newState = workInProgress.memoizedState;
  }
  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {
    // If an update was already in progress, we should schedule an Update
    // effect even though we're bailing out, so that cWU/cDU are called.
    if (typeof instance.componentDidMount === 'function') {
      workInProgress.effectTag |= Update;
    }
    return false;
  }

  if (typeof getDerivedStateFromProps === 'function') {
    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);
    newState = workInProgress.memoizedState;
  }

  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);

  if (shouldUpdate) {
    // In order to support react-lifecycles-compat polyfilled components,
    // Unsafe lifecycles should not be invoked for components using the new APIs.
    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {
      startPhaseTimer(workInProgress, 'componentWillMount');
      if (typeof instance.componentWillMount === 'function') {
        instance.componentWillMount();
      }
      if (typeof instance.UNSAFE_componentWillMount === 'function') {
        instance.UNSAFE_componentWillMount();
      }
      stopPhaseTimer();
    }
    if (typeof instance.componentDidMount === 'function') {
      workInProgress.effectTag |= Update;
    }
  } else {
    // If an update was already in progress, we should schedule an Update
    // effect even though we're bailing out, so that cWU/cDU are called.
    if (typeof instance.componentDidMount === 'function') {
      workInProgress.effectTag |= Update;
    }

    // If shouldComponentUpdate returned false, we should still update the
    // memoized state to indicate that this work can be reused.
    workInProgress.memoizedProps = newProps;
    workInProgress.memoizedState = newState;
  }

  // Update the existing instance's state, props, and context pointers even
  // if shouldComponentUpdate returns false.
  instance.props = newProps;
  instance.state = newState;
  instance.context = nextContext;

  return shouldUpdate;
}

// Invokes the update life-cycles and returns false if it shouldn't rerender.
function updateClassInstance(current, workInProgress, ctor, newProps, renderExpirationTime) {
  var instance = workInProgress.stateNode;

  var oldProps = workInProgress.memoizedProps;
  instance.props = workInProgress.type === workInProgress.elementType ? oldProps : resolveDefaultProps(workInProgress.type, oldProps);

  var oldContext = instance.context;
  var contextType = ctor.contextType;
  var nextContext = void 0;
  if (typeof contextType === 'object' && contextType !== null) {
    nextContext = readContext(contextType);
  } else {
    var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);
    nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);
  }

  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;
  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';

  // Note: During these life-cycles, instance.props/instance.state are what
  // ever the previously attempted to render - not the "current". However,
  // during componentDidUpdate we pass the "current" props.

  // In order to support react-lifecycles-compat polyfilled components,
  // Unsafe lifecycles should not be invoked for components using the new APIs.
  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {
    if (oldProps !== newProps || oldContext !== nextContext) {
      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);
    }
  }

  resetHasForceUpdateBeforeProcessing();

  var oldState = workInProgress.memoizedState;
  var newState = instance.state = oldState;
  var updateQueue = workInProgress.updateQueue;
  if (updateQueue !== null) {
    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);
    newState = workInProgress.memoizedState;
  }

  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {
    // If an update was already in progress, we should schedule an Update
    // effect even though we're bailing out, so that cWU/cDU are called.
    if (typeof instance.componentDidUpdate === 'function') {
      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {
        workInProgress.effectTag |= Update;
      }
    }
    if (typeof instance.getSnapshotBeforeUpdate === 'function') {
      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {
        workInProgress.effectTag |= Snapshot;
      }
    }
    return false;
  }

  if (typeof getDerivedStateFromProps === 'function') {
    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);
    newState = workInProgress.memoizedState;
  }

  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);

  if (shouldUpdate) {
    // In order to support react-lifecycles-compat polyfilled components,
    // Unsafe lifecycles should not be invoked for components using the new APIs.
    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {
      startPhaseTimer(workInProgress, 'componentWillUpdate');
      if (typeof instance.componentWillUpdate === 'function') {
        instance.componentWillUpdate(newProps, newState, nextContext);
      }
      if (typeof instance.UNSAFE_componentWillUpdate === 'function') {
        instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);
      }
      stopPhaseTimer();
    }
    if (typeof instance.componentDidUpdate === 'function') {
      workInProgress.effectTag |= Update;
    }
    if (typeof instance.getSnapshotBeforeUpdate === 'function') {
      workInProgress.effectTag |= Snapshot;
    }
  } else {
    // If an update was already in progress, we should schedule an Update
    // effect even though we're bailing out, so that cWU/cDU are called.
    if (typeof instance.componentDidUpdate === 'function') {
      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {
        workInProgress.effectTag |= Update;
      }
    }
    if (typeof instance.getSnapshotBeforeUpdate === 'function') {
      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {
        workInProgress.effectTag |= Snapshot;
      }
    }

    // If shouldComponentUpdate returned false, we should still update the
    // memoized props/state to indicate that this work can be reused.
    workInProgress.memoizedProps = newProps;
    workInProgress.memoizedState = newState;
  }

  // Update the existing instance's state, props, and context pointers even
  // if shouldComponentUpdate returns false.
  instance.props = newProps;
  instance.state = newState;
  instance.context = nextContext;

  return shouldUpdate;
}

var didWarnAboutMaps = void 0;
var didWarnAboutGenerators = void 0;
var didWarnAboutStringRefInStrictMode = void 0;
var ownerHasKeyUseWarning = void 0;
var ownerHasFunctionTypeWarning = void 0;
var warnForMissingKey = function (child) {};

{
  didWarnAboutMaps = false;
  didWarnAboutGenerators = false;
  didWarnAboutStringRefInStrictMode = {};

  /**
   * Warn if there's no key explicitly set on dynamic arrays of children or
   * object keys are not valid. This allows us to keep track of children between
   * updates.
   */
  ownerHasKeyUseWarning = {};
  ownerHasFunctionTypeWarning = {};

  warnForMissingKey = function (child) {
    if (child === null || typeof child !== 'object') {
      return;
    }
    if (!child._store || child._store.validated || child.key != null) {
      return;
    }
    !(typeof child._store === 'object') ? invariant(false, 'React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.') : void 0;
    child._store.validated = true;

    var currentComponentErrorInfo = 'Each child in a list should have a unique ' + '"key" prop. See https://fb.me/react-warning-keys for ' + 'more information.' + getCurrentFiberStackInDev();
    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
      return;
    }
    ownerHasKeyUseWarning[currentComponentErrorInfo] = true;

    warning$1(false, 'Each child in a list should have a unique ' + '"key" prop. See https://fb.me/react-warning-keys for ' + 'more information.');
  };
}

var isArray = Array.isArray;

function coerceRef(returnFiber, current$$1, element) {
  var mixedRef = element.ref;
  if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {
    {
      if (returnFiber.mode & StrictMode) {
        var componentName = getComponentName(returnFiber.type) || 'Component';
        if (!didWarnAboutStringRefInStrictMode[componentName]) {
          warningWithoutStack$1(false, 'A string ref, "%s", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using createRef() instead.' + '\n%s' + '\n\nLearn more about using refs safely here:' + '\nhttps://fb.me/react-strict-mode-string-ref', mixedRef, getStackByFiberInDevAndProd(returnFiber));
          didWarnAboutStringRefInStrictMode[componentName] = true;
        }
      }
    }

    if (element._owner) {
      var owner = element._owner;
      var inst = void 0;
      if (owner) {
        var ownerFiber = owner;
        !(ownerFiber.tag === ClassComponent) ? invariant(false, 'Function components cannot have refs. Did you mean to use React.forwardRef()?') : void 0;
        inst = ownerFiber.stateNode;
      }
      !inst ? invariant(false, 'Missing owner for string ref %s. This error is likely caused by a bug in React. Please file an issue.', mixedRef) : void 0;
      var stringRef = '' + mixedRef;
      // Check if previous string ref matches new string ref
      if (current$$1 !== null && current$$1.ref !== null && typeof current$$1.ref === 'function' && current$$1.ref._stringRef === stringRef) {
        return current$$1.ref;
      }
      var ref = function (value) {
        var refs = inst.refs;
        if (refs === emptyRefsObject) {
          // This is a lazy pooled frozen object, so we need to initialize.
          refs = inst.refs = {};
        }
        if (value === null) {
          delete refs[stringRef];
        } else {
          refs[stringRef] = value;
        }
      };
      ref._stringRef = stringRef;
      return ref;
    } else {
      !(typeof mixedRef === 'string') ? invariant(false, 'Expected ref to be a function, a string, an object returned by React.createRef(), or null.') : void 0;
      !element._owner ? invariant(false, 'Element ref was specified as a string (%s) but no owner was set. This could happen for one of the following reasons:\n1. You may be adding a ref to a function component\n2. You may be adding a ref to a component that was not created inside a component\'s render method\n3. You have multiple copies of React loaded\nSee https://fb.me/react-refs-must-have-owner for more information.', mixedRef) : void 0;
    }
  }
  return mixedRef;
}

function throwOnInvalidObjectType(returnFiber, newChild) {
  if (returnFiber.type !== 'textarea') {
    var addendum = '';
    {
      addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + getCurrentFiberStackInDev();
    }
    invariant(false, 'Objects are not valid as a React child (found: %s).%s', Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild, addendum);
  }
}

function warnOnFunctionType() {
  var currentComponentErrorInfo = 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.' + getCurrentFiberStackInDev();

  if (ownerHasFunctionTypeWarning[currentComponentErrorInfo]) {
    return;
  }
  ownerHasFunctionTypeWarning[currentComponentErrorInfo] = true;

  warning$1(false, 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');
}

// This wrapper function exists because I expect to clone the code in each path
// to be able to optimize each path individually by branching early. This needs
// a compiler or we can do it manually. Helpers that don't need this branching
// live outside of this function.
function ChildReconciler(shouldTrackSideEffects) {
  function deleteChild(returnFiber, childToDelete) {
    if (!shouldTrackSideEffects) {
      // Noop.
      return;
    }
    // Deletions are added in reversed order so we add it to the front.
    // At this point, the return fiber's effect list is empty except for
    // deletions, so we can just append the deletion to the list. The remaining
    // effects aren't added until the complete phase. Once we implement
    // resuming, this may not be true.
    var last = returnFiber.lastEffect;
    if (last !== null) {
      last.nextEffect = childToDelete;
      returnFiber.lastEffect = childToDelete;
    } else {
      returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;
    }
    childToDelete.nextEffect = null;
    childToDelete.effectTag = Deletion;
  }

  function deleteRemainingChildren(returnFiber, currentFirstChild) {
    if (!shouldTrackSideEffects) {
      // Noop.
      return null;
    }

    // TODO: For the shouldClone case, this could be micro-optimized a bit by
    // assuming that after the first child we've already added everything.
    var childToDelete = currentFirstChild;
    while (childToDelete !== null) {
      deleteChild(returnFiber, childToDelete);
      childToDelete = childToDelete.sibling;
    }
    return null;
  }

  function mapRemainingChildren(returnFiber, currentFirstChild) {
    // Add the remaining children to a temporary map so that we can find them by
    // keys quickly. Implicit (null) keys get added to this set with their index
    var existingChildren = new Map();

    var existingChild = currentFirstChild;
    while (existingChild !== null) {
      if (existingChild.key !== null) {
        existingChildren.set(existingChild.key, existingChild);
      } else {
        existingChildren.set(existingChild.index, existingChild);
      }
      existingChild = existingChild.sibling;
    }
    return existingChildren;
  }

  function useFiber(fiber, pendingProps, expirationTime) {
    // We currently set sibling to null and index to 0 here because it is easy
    // to forget to do before returning it. E.g. for the single child case.
    var clone = createWorkInProgress(fiber, pendingProps, expirationTime);
    clone.index = 0;
    clone.sibling = null;
    return clone;
  }

  function placeChild(newFiber, lastPlacedIndex, newIndex) {
    newFiber.index = newIndex;
    if (!shouldTrackSideEffects) {
      // Noop.
      return lastPlacedIndex;
    }
    var current$$1 = newFiber.alternate;
    if (current$$1 !== null) {
      var oldIndex = current$$1.index;
      if (oldIndex < lastPlacedIndex) {
        // This is a move.
        newFiber.effectTag = Placement;
        return lastPlacedIndex;
      } else {
        // This item can stay in place.
        return oldIndex;
      }
    } else {
      // This is an insertion.
      newFiber.effectTag = Placement;
      return lastPlacedIndex;
    }
  }

  function placeSingleChild(newFiber) {
    // This is simpler for the single child case. We only need to do a
    // placement for inserting new children.
    if (shouldTrackSideEffects && newFiber.alternate === null) {
      newFiber.effectTag = Placement;
    }
    return newFiber;
  }

  function updateTextNode(returnFiber, current$$1, textContent, expirationTime) {
    if (current$$1 === null || current$$1.tag !== HostText) {
      // Insert
      var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);
      created.return = returnFiber;
      return created;
    } else {
      // Update
      var existing = useFiber(current$$1, textContent, expirationTime);
      existing.return = returnFiber;
      return existing;
    }
  }

  function updateElement(returnFiber, current$$1, element, expirationTime) {
    if (current$$1 !== null && current$$1.elementType === element.type) {
      // Move based on index
      var existing = useFiber(current$$1, element.props, expirationTime);
      existing.ref = coerceRef(returnFiber, current$$1, element);
      existing.return = returnFiber;
      {
        existing._debugSource = element._source;
        existing._debugOwner = element._owner;
      }
      return existing;
    } else {
      // Insert
      var created = createFiberFromElement(element, returnFiber.mode, expirationTime);
      created.ref = coerceRef(returnFiber, current$$1, element);
      created.return = returnFiber;
      return created;
    }
  }

  function updatePortal(returnFiber, current$$1, portal, expirationTime) {
    if (current$$1 === null || current$$1.tag !== HostPortal || current$$1.stateNode.containerInfo !== portal.containerInfo || current$$1.stateNode.implementation !== portal.implementation) {
      // Insert
      var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);
      created.return = returnFiber;
      return created;
    } else {
      // Update
      var existing = useFiber(current$$1, portal.children || [], expirationTime);
      existing.return = returnFiber;
      return existing;
    }
  }

  function updateFragment(returnFiber, current$$1, fragment, expirationTime, key) {
    if (current$$1 === null || current$$1.tag !== Fragment) {
      // Insert
      var created = createFiberFromFragment(fragment, returnFiber.mode, expirationTime, key);
      created.return = returnFiber;
      return created;
    } else {
      // Update
      var existing = useFiber(current$$1, fragment, expirationTime);
      existing.return = returnFiber;
      return existing;
    }
  }

  function createChild(returnFiber, newChild, expirationTime) {
    if (typeof newChild === 'string' || typeof newChild === 'number') {
      // Text nodes don't have keys. If the previous node is implicitly keyed
      // we can continue to replace it without aborting even if it is not a text
      // node.
      var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime);
      created.return = returnFiber;
      return created;
    }

    if (typeof newChild === 'object' && newChild !== null) {
      switch (newChild.$$typeof) {
        case REACT_ELEMENT_TYPE:
          {
            var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime);
            _created.ref = coerceRef(returnFiber, null, newChild);
            _created.return = returnFiber;
            return _created;
          }
        case REACT_PORTAL_TYPE:
          {
            var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime);
            _created2.return = returnFiber;
            return _created2;
          }
      }

      if (isArray(newChild) || getIteratorFn(newChild)) {
        var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null);
        _created3.return = returnFiber;
        return _created3;
      }

      throwOnInvalidObjectType(returnFiber, newChild);
    }

    {
      if (typeof newChild === 'function') {
        warnOnFunctionType();
      }
    }

    return null;
  }

  function updateSlot(returnFiber, oldFiber, newChild, expirationTime) {
    // Update the fiber if the keys match, otherwise return null.

    var key = oldFiber !== null ? oldFiber.key : null;

    if (typeof newChild === 'string' || typeof newChild === 'number') {
      // Text nodes don't have keys. If the previous node is implicitly keyed
      // we can continue to replace it without aborting even if it is not a text
      // node.
      if (key !== null) {
        return null;
      }
      return updateTextNode(returnFiber, oldFiber, '' + newChild, expirationTime);
    }

    if (typeof newChild === 'object' && newChild !== null) {
      switch (newChild.$$typeof) {
        case REACT_ELEMENT_TYPE:
          {
            if (newChild.key === key) {
              if (newChild.type === REACT_FRAGMENT_TYPE) {
                return updateFragment(returnFiber, oldFiber, newChild.props.children, expirationTime, key);
              }
              return updateElement(returnFiber, oldFiber, newChild, expirationTime);
            } else {
              return null;
            }
          }
        case REACT_PORTAL_TYPE:
          {
            if (newChild.key === key) {
              return updatePortal(returnFiber, oldFiber, newChild, expirationTime);
            } else {
              return null;
            }
          }
      }

      if (isArray(newChild) || getIteratorFn(newChild)) {
        if (key !== null) {
          return null;
        }

        return updateFragment(returnFiber, oldFiber, newChild, expirationTime, null);
      }

      throwOnInvalidObjectType(returnFiber, newChild);
    }

    {
      if (typeof newChild === 'function') {
        warnOnFunctionType();
      }
    }

    return null;
  }

  function updateFromMap(existingChildren, returnFiber, newIdx, newChild, expirationTime) {
    if (typeof newChild === 'string' || typeof newChild === 'number') {
      // Text nodes don't have keys, so we neither have to check the old nor
      // new node for the key. If both are text nodes, they match.
      var matchedFiber = existingChildren.get(newIdx) || null;
      return updateTextNode(returnFiber, matchedFiber, '' + newChild, expirationTime);
    }

    if (typeof newChild === 'object' && newChild !== null) {
      switch (newChild.$$typeof) {
        case REACT_ELEMENT_TYPE:
          {
            var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;
            if (newChild.type === REACT_FRAGMENT_TYPE) {
              return updateFragment(returnFiber, _matchedFiber, newChild.props.children, expirationTime, newChild.key);
            }
            return updateElement(returnFiber, _matchedFiber, newChild, expirationTime);
          }
        case REACT_PORTAL_TYPE:
          {
            var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;
            return updatePortal(returnFiber, _matchedFiber2, newChild, expirationTime);
          }
      }

      if (isArray(newChild) || getIteratorFn(newChild)) {
        var _matchedFiber3 = existingChildren.get(newIdx) || null;
        return updateFragment(returnFiber, _matchedFiber3, newChild, expirationTime, null);
      }

      throwOnInvalidObjectType(returnFiber, newChild);
    }

    {
      if (typeof newChild === 'function') {
        warnOnFunctionType();
      }
    }

    return null;
  }

  /**
   * Warns if there is a duplicate or missing key
   */
  function warnOnInvalidKey(child, knownKeys) {
    {
      if (typeof child !== 'object' || child === null) {
        return knownKeys;
      }
      switch (child.$$typeof) {
        case REACT_ELEMENT_TYPE:
        case REACT_PORTAL_TYPE:
          warnForMissingKey(child);
          var key = child.key;
          if (typeof key !== 'string') {
            break;
          }
          if (knownKeys === null) {
            knownKeys = new Set();
            knownKeys.add(key);
            break;
          }
          if (!knownKeys.has(key)) {
            knownKeys.add(key);
            break;
          }
          warning$1(false, 'Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);
          break;
        default:
          break;
      }
    }
    return knownKeys;
  }

  function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, expirationTime) {
    // This algorithm can't optimize by searching from both ends since we
    // don't have backpointers on fibers. I'm trying to see how far we can get
    // with that model. If it ends up not being worth the tradeoffs, we can
    // add it later.

    // Even with a two ended optimization, we'd want to optimize for the case
    // where there are few changes and brute force the comparison instead of
    // going for the Map. It'd like to explore hitting that path first in
    // forward-only mode and only go for the Map once we notice that we need
    // lots of look ahead. This doesn't handle reversal as well as two ended
    // search but that's unusual. Besides, for the two ended optimization to
    // work on Iterables, we'd need to copy the whole set.

    // In this first iteration, we'll just live with hitting the bad case
    // (adding everything to a Map) in for every insert/move.

    // If you change this code, also update reconcileChildrenIterator() which
    // uses the same algorithm.

    {
      // First, validate keys.
      var knownKeys = null;
      for (var i = 0; i < newChildren.length; i++) {
        var child = newChildren[i];
        knownKeys = warnOnInvalidKey(child, knownKeys);
      }
    }

    var resultingFirstChild = null;
    var previousNewFiber = null;

    var oldFiber = currentFirstChild;
    var lastPlacedIndex = 0;
    var newIdx = 0;
    var nextOldFiber = null;
    for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {
      if (oldFiber.index > newIdx) {
        nextOldFiber = oldFiber;
        oldFiber = null;
      } else {
        nextOldFiber = oldFiber.sibling;
      }
      var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], expirationTime);
      if (newFiber === null) {
        // TODO: This breaks on empty slots like null children. That's
        // unfortunate because it triggers the slow path all the time. We need
        // a better way to communicate whether this was a miss or null,
        // boolean, undefined, etc.
        if (oldFiber === null) {
          oldFiber = nextOldFiber;
        }
        break;
      }
      if (shouldTrackSideEffects) {
        if (oldFiber && newFiber.alternate === null) {
          // We matched the slot, but we didn't reuse the existing fiber, so we
          // need to delete the existing child.
          deleteChild(returnFiber, oldFiber);
        }
      }
      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);
      if (previousNewFiber === null) {
        // TODO: Move out of the loop. This only happens for the first run.
        resultingFirstChild = newFiber;
      } else {
        // TODO: Defer siblings if we're not at the right index for this slot.
        // I.e. if we had null values before, then we want to defer this
        // for each null value. However, we also don't want to call updateSlot
        // with the previous one.
        previousNewFiber.sibling = newFiber;
      }
      previousNewFiber = newFiber;
      oldFiber = nextOldFiber;
    }

    if (newIdx === newChildren.length) {
      // We've reached the end of the new children. We can delete the rest.
      deleteRemainingChildren(returnFiber, oldFiber);
      return resultingFirstChild;
    }

    if (oldFiber === null) {
      // If we don't have any more existing children we can choose a fast path
      // since the rest will all be insertions.
      for (; newIdx < newChildren.length; newIdx++) {
        var _newFiber = createChild(returnFiber, newChildren[newIdx], expirationTime);
        if (!_newFiber) {
          continue;
        }
        lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);
        if (previousNewFiber === null) {
          // TODO: Move out of the loop. This only happens for the first run.
          resultingFirstChild = _newFiber;
        } else {
          previousNewFiber.sibling = _newFiber;
        }
        previousNewFiber = _newFiber;
      }
      return resultingFirstChild;
    }

    // Add all children to a key map for quick lookups.
    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);

    // Keep scanning and use the map to restore deleted items as moves.
    for (; newIdx < newChildren.length; newIdx++) {
      var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], expirationTime);
      if (_newFiber2) {
        if (shouldTrackSideEffects) {
          if (_newFiber2.alternate !== null) {
            // The new fiber is a work in progress, but if there exists a
            // current, that means that we reused the fiber. We need to delete
            // it from the child list so that we don't add it to the deletion
            // list.
            existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);
          }
        }
        lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);
        if (previousNewFiber === null) {
          resultingFirstChild = _newFiber2;
        } else {
          previousNewFiber.sibling = _newFiber2;
        }
        previousNewFiber = _newFiber2;
      }
    }

    if (shouldTrackSideEffects) {
      // Any existing children that weren't consumed above were deleted. We need
      // to add them to the deletion list.
      existingChildren.forEach(function (child) {
        return deleteChild(returnFiber, child);
      });
    }

    return resultingFirstChild;
  }

  function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, expirationTime) {
    // This is the same implementation as reconcileChildrenArray(),
    // but using the iterator instead.

    var iteratorFn = getIteratorFn(newChildrenIterable);
    !(typeof iteratorFn === 'function') ? invariant(false, 'An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.') : void 0;

    {
      // We don't support rendering Generators because it's a mutation.
      // See https://github.com/facebook/react/issues/12995
      if (typeof Symbol === 'function' &&
      // $FlowFixMe Flow doesn't know about toStringTag
      newChildrenIterable[Symbol.toStringTag] === 'Generator') {
        !didWarnAboutGenerators ? warning$1(false, 'Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.') : void 0;
        didWarnAboutGenerators = true;
      }

      // Warn about using Maps as children
      if (newChildrenIterable.entries === iteratorFn) {
        !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;
        didWarnAboutMaps = true;
      }

      // First, validate keys.
      // We'll get a different iterator later for the main pass.
      var _newChildren = iteratorFn.call(newChildrenIterable);
      if (_newChildren) {
        var knownKeys = null;
        var _step = _newChildren.next();
        for (; !_step.done; _step = _newChildren.next()) {
          var child = _step.value;
          knownKeys = warnOnInvalidKey(child, knownKeys);
        }
      }
    }

    var newChildren = iteratorFn.call(newChildrenIterable);
    !(newChildren != null) ? invariant(false, 'An iterable object provided no iterator.') : void 0;

    var resultingFirstChild = null;
    var previousNewFiber = null;

    var oldFiber = currentFirstChild;
    var lastPlacedIndex = 0;
    var newIdx = 0;
    var nextOldFiber = null;

    var step = newChildren.next();
    for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {
      if (oldFiber.index > newIdx) {
        nextOldFiber = oldFiber;
        oldFiber = null;
      } else {
        nextOldFiber = oldFiber.sibling;
      }
      var newFiber = updateSlot(returnFiber, oldFiber, step.value, expirationTime);
      if (newFiber === null) {
        // TODO: This breaks on empty slots like null children. That's
        // unfortunate because it triggers the slow path all the time. We need
        // a better way to communicate whether this was a miss or null,
        // boolean, undefined, etc.
        if (!oldFiber) {
          oldFiber = nextOldFiber;
        }
        break;
      }
      if (shouldTrackSideEffects) {
        if (oldFiber && newFiber.alternate === null) {
          // We matched the slot, but we didn't reuse the existing fiber, so we
          // need to delete the existing child.
          deleteChild(returnFiber, oldFiber);
        }
      }
      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);
      if (previousNewFiber === null) {
        // TODO: Move out of the loop. This only happens for the first run.
        resultingFirstChild = newFiber;
      } else {
        // TODO: Defer siblings if we're not at the right index for this slot.
        // I.e. if we had null values before, then we want to defer this
        // for each null value. However, we also don't want to call updateSlot
        // with the previous one.
        previousNewFiber.sibling = newFiber;
      }
      previousNewFiber = newFiber;
      oldFiber = nextOldFiber;
    }

    if (step.done) {
      // We've reached the end of the new children. We can delete the rest.
      deleteRemainingChildren(returnFiber, oldFiber);
      return resultingFirstChild;
    }

    if (oldFiber === null) {
      // If we don't have any more existing children we can choose a fast path
      // since the rest will all be insertions.
      for (; !step.done; newIdx++, step = newChildren.next()) {
        var _newFiber3 = createChild(returnFiber, step.value, expirationTime);
        if (_newFiber3 === null) {
          continue;
        }
        lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);
        if (previousNewFiber === null) {
          // TODO: Move out of the loop. This only happens for the first run.
          resultingFirstChild = _newFiber3;
        } else {
          previousNewFiber.sibling = _newFiber3;
        }
        previousNewFiber = _newFiber3;
      }
      return resultingFirstChild;
    }

    // Add all children to a key map for quick lookups.
    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);

    // Keep scanning and use the map to restore deleted items as moves.
    for (; !step.done; newIdx++, step = newChildren.next()) {
      var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, expirationTime);
      if (_newFiber4 !== null) {
        if (shouldTrackSideEffects) {
          if (_newFiber4.alternate !== null) {
            // The new fiber is a work in progress, but if there exists a
            // current, that means that we reused the fiber. We need to delete
            // it from the child list so that we don't add it to the deletion
            // list.
            existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);
          }
        }
        lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);
        if (previousNewFiber === null) {
          resultingFirstChild = _newFiber4;
        } else {
          previousNewFiber.sibling = _newFiber4;
        }
        previousNewFiber = _newFiber4;
      }
    }

    if (shouldTrackSideEffects) {
      // Any existing children that weren't consumed above were deleted. We need
      // to add them to the deletion list.
      existingChildren.forEach(function (child) {
        return deleteChild(returnFiber, child);
      });
    }

    return resultingFirstChild;
  }

  function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, expirationTime) {
    // There's no need to check for keys on text nodes since we don't have a
    // way to define them.
    if (currentFirstChild !== null && currentFirstChild.tag === HostText) {
      // We already have an existing node so let's just update it and delete
      // the rest.
      deleteRemainingChildren(returnFiber, currentFirstChild.sibling);
      var existing = useFiber(currentFirstChild, textContent, expirationTime);
      existing.return = returnFiber;
      return existing;
    }
    // The existing first child is not a text node so we need to create one
    // and delete the existing ones.
    deleteRemainingChildren(returnFiber, currentFirstChild);
    var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);
    created.return = returnFiber;
    return created;
  }

  function reconcileSingleElement(returnFiber, currentFirstChild, element, expirationTime) {
    var key = element.key;
    var child = currentFirstChild;
    while (child !== null) {
      // TODO: If key === null and child.key === null, then this only applies to
      // the first item in the list.
      if (child.key === key) {
        if (child.tag === Fragment ? element.type === REACT_FRAGMENT_TYPE : child.elementType === element.type) {
          deleteRemainingChildren(returnFiber, child.sibling);
          var existing = useFiber(child, element.type === REACT_FRAGMENT_TYPE ? element.props.children : element.props, expirationTime);
          existing.ref = coerceRef(returnFiber, child, element);
          existing.return = returnFiber;
          {
            existing._debugSource = element._source;
            existing._debugOwner = element._owner;
          }
          return existing;
        } else {
          deleteRemainingChildren(returnFiber, child);
          break;
        }
      } else {
        deleteChild(returnFiber, child);
      }
      child = child.sibling;
    }

    if (element.type === REACT_FRAGMENT_TYPE) {
      var created = createFiberFromFragment(element.props.children, returnFiber.mode, expirationTime, element.key);
      created.return = returnFiber;
      return created;
    } else {
      var _created4 = createFiberFromElement(element, returnFiber.mode, expirationTime);
      _created4.ref = coerceRef(returnFiber, currentFirstChild, element);
      _created4.return = returnFiber;
      return _created4;
    }
  }

  function reconcileSinglePortal(returnFiber, currentFirstChild, portal, expirationTime) {
    var key = portal.key;
    var child = currentFirstChild;
    while (child !== null) {
      // TODO: If key === null and child.key === null, then this only applies to
      // the first item in the list.
      if (child.key === key) {
        if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {
          deleteRemainingChildren(returnFiber, child.sibling);
          var existing = useFiber(child, portal.children || [], expirationTime);
          existing.return = returnFiber;
          return existing;
        } else {
          deleteRemainingChildren(returnFiber, child);
          break;
        }
      } else {
        deleteChild(returnFiber, child);
      }
      child = child.sibling;
    }

    var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);
    created.return = returnFiber;
    return created;
  }

  // This API will tag the children with the side-effect of the reconciliation
  // itself. They will be added to the side-effect list as we pass through the
  // children and the parent.
  function reconcileChildFibers(returnFiber, currentFirstChild, newChild, expirationTime) {
    // This function is not recursive.
    // If the top level item is an array, we treat it as a set of children,
    // not as a fragment. Nested arrays on the other hand will be treated as
    // fragment nodes. Recursion happens at the normal flow.

    // Handle top level unkeyed fragments as if they were arrays.
    // This leads to an ambiguity between <>{[...]}</> and <>...</>.
    // We treat the ambiguous cases above the same.
    var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;
    if (isUnkeyedTopLevelFragment) {
      newChild = newChild.props.children;
    }

    // Handle object types
    var isObject = typeof newChild === 'object' && newChild !== null;

    if (isObject) {
      switch (newChild.$$typeof) {
        case REACT_ELEMENT_TYPE:
          return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, expirationTime));
        case REACT_PORTAL_TYPE:
          return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, expirationTime));
      }
    }

    if (typeof newChild === 'string' || typeof newChild === 'number') {
      return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, expirationTime));
    }

    if (isArray(newChild)) {
      return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, expirationTime);
    }

    if (getIteratorFn(newChild)) {
      return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, expirationTime);
    }

    if (isObject) {
      throwOnInvalidObjectType(returnFiber, newChild);
    }

    {
      if (typeof newChild === 'function') {
        warnOnFunctionType();
      }
    }
    if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {
      // If the new child is undefined, and the return fiber is a composite
      // component, throw an error. If Fiber return types are disabled,
      // we already threw above.
      switch (returnFiber.tag) {
        case ClassComponent:
          {
            {
              var instance = returnFiber.stateNode;
              if (instance.render._isMockFunction) {
                // We allow auto-mocks to proceed as if they're returning null.
                break;
              }
            }
          }
        // Intentionally fall through to the next case, which handles both
        // functions and classes
        // eslint-disable-next-lined no-fallthrough
        case FunctionComponent:
          {
            var Component = returnFiber.type;
            invariant(false, '%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.', Component.displayName || Component.name || 'Component');
          }
      }
    }

    // Remaining cases are all treated as empty.
    return deleteRemainingChildren(returnFiber, currentFirstChild);
  }

  return reconcileChildFibers;
}

var reconcileChildFibers = ChildReconciler(true);
var mountChildFibers = ChildReconciler(false);

function cloneChildFibers(current$$1, workInProgress) {
  !(current$$1 === null || workInProgress.child === current$$1.child) ? invariant(false, 'Resuming work not yet implemented.') : void 0;

  if (workInProgress.child === null) {
    return;
  }

  var currentChild = workInProgress.child;
  var newChild = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);
  workInProgress.child = newChild;

  newChild.return = workInProgress;
  while (currentChild.sibling !== null) {
    currentChild = currentChild.sibling;
    newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);
    newChild.return = workInProgress;
  }
  newChild.sibling = null;
}

var NO_CONTEXT = {};

var contextStackCursor$1 = createCursor(NO_CONTEXT);
var contextFiberStackCursor = createCursor(NO_CONTEXT);
var rootInstanceStackCursor = createCursor(NO_CONTEXT);

function requiredContext(c) {
  !(c !== NO_CONTEXT) ? invariant(false, 'Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  return c;
}

function getRootHostContainer() {
  var rootInstance = requiredContext(rootInstanceStackCursor.current);
  return rootInstance;
}

function pushHostContainer(fiber, nextRootInstance) {
  // Push current root instance onto the stack;
  // This allows us to reset root when portals are popped.
  push(rootInstanceStackCursor, nextRootInstance, fiber);
  // Track the context and the Fiber that provided it.
  // This enables us to pop only Fibers that provide unique contexts.
  push(contextFiberStackCursor, fiber, fiber);

  // Finally, we need to push the host context to the stack.
  // However, we can't just call getRootHostContext() and push it because
  // we'd have a different number of entries on the stack depending on
  // whether getRootHostContext() throws somewhere in renderer code or not.
  // So we push an empty value first. This lets us safely unwind on errors.
  push(contextStackCursor$1, NO_CONTEXT, fiber);
  var nextRootContext = getRootHostContext(nextRootInstance);
  // Now that we know this function doesn't throw, replace it.
  pop(contextStackCursor$1, fiber);
  push(contextStackCursor$1, nextRootContext, fiber);
}

function popHostContainer(fiber) {
  pop(contextStackCursor$1, fiber);
  pop(contextFiberStackCursor, fiber);
  pop(rootInstanceStackCursor, fiber);
}

function getHostContext() {
  var context = requiredContext(contextStackCursor$1.current);
  return context;
}

function pushHostContext(fiber) {
  var rootInstance = requiredContext(rootInstanceStackCursor.current);
  var context = requiredContext(contextStackCursor$1.current);
  var nextContext = getChildHostContext(context, fiber.type, rootInstance);

  // Don't push this Fiber's context unless it's unique.
  if (context === nextContext) {
    return;
  }

  // Track the context and the Fiber that provided it.
  // This enables us to pop only Fibers that provide unique contexts.
  push(contextFiberStackCursor, fiber, fiber);
  push(contextStackCursor$1, nextContext, fiber);
}

function popHostContext(fiber) {
  // Do not pop unless this Fiber provided the current context.
  // pushHostContext() only pushes Fibers that provide unique contexts.
  if (contextFiberStackCursor.current !== fiber) {
    return;
  }

  pop(contextStackCursor$1, fiber);
  pop(contextFiberStackCursor, fiber);
}

var NoEffect$1 = /*             */0;
var UnmountSnapshot = /*      */2;
var UnmountMutation = /*      */4;
var MountMutation = /*        */8;
var UnmountLayout = /*        */16;
var MountLayout = /*          */32;
var MountPassive = /*         */64;
var UnmountPassive = /*       */128;

var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;


var didWarnAboutMismatchedHooksForComponent = void 0;
{
  didWarnAboutMismatchedHooksForComponent = new Set();
}

// These are set right before calling the component.
var renderExpirationTime = NoWork;
// The work-in-progress fiber. I've named it differently to distinguish it from
// the work-in-progress hook.
var currentlyRenderingFiber$1 = null;

// Hooks are stored as a linked list on the fiber's memoizedState field. The
// current hook list is the list that belongs to the current fiber. The
// work-in-progress hook list is a new list that will be added to the
// work-in-progress fiber.
var currentHook = null;
var nextCurrentHook = null;
var firstWorkInProgressHook = null;
var workInProgressHook = null;
var nextWorkInProgressHook = null;

var remainingExpirationTime = NoWork;
var componentUpdateQueue = null;
var sideEffectTag = 0;

// Updates scheduled during render will trigger an immediate re-render at the
// end of the current pass. We can't store these updates on the normal queue,
// because if the work is aborted, they should be discarded. Because this is
// a relatively rare case, we also don't want to add an additional field to
// either the hook or queue object types. So we store them in a lazily create
// map of queue -> render-phase updates, which are discarded once the component
// completes without re-rendering.

// Whether an update was scheduled during the currently executing render pass.
var didScheduleRenderPhaseUpdate = false;
// Lazily created map of render-phase updates
var renderPhaseUpdates = null;
// Counter to prevent infinite loops.
var numberOfReRenders = 0;
var RE_RENDER_LIMIT = 25;

// In DEV, this is the name of the currently executing primitive hook
var currentHookNameInDev = null;

// In DEV, this list ensures that hooks are called in the same order between renders.
// The list stores the order of hooks used during the initial render (mount).
// Subsequent renders (updates) reference this list.
var hookTypesDev = null;
var hookTypesUpdateIndexDev = -1;

function mountHookTypesDev() {
  {
    var hookName = currentHookNameInDev;

    if (hookTypesDev === null) {
      hookTypesDev = [hookName];
    } else {
      hookTypesDev.push(hookName);
    }
  }
}

function updateHookTypesDev() {
  {
    var hookName = currentHookNameInDev;

    if (hookTypesDev !== null) {
      hookTypesUpdateIndexDev++;
      if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {
        warnOnHookMismatchInDev(hookName);
      }
    }
  }
}

function warnOnHookMismatchInDev(currentHookName) {
  {
    var componentName = getComponentName(currentlyRenderingFiber$1.type);
    if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {
      didWarnAboutMismatchedHooksForComponent.add(componentName);

      if (hookTypesDev !== null) {
        var table = '';

        var secondColumnStart = 30;

        for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {
          var oldHookName = hookTypesDev[i];
          var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;

          var row = i + 1 + '. ' + oldHookName;

          // Extra space so second column lines up
          // lol @ IE not supporting String#repeat
          while (row.length < secondColumnStart) {
            row += ' ';
          }

          row += newHookName + '\n';

          table += row;
        }

        warning$1(false, 'React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks\n\n' + '   Previous render            Next render\n' + '   ------------------------------------------------------\n' + '%s' + '   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', componentName, table);
      }
    }
  }
}

function throwInvalidHookError() {
  invariant(false, 'Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.');
}

function areHookInputsEqual(nextDeps, prevDeps) {
  if (prevDeps === null) {
    {
      warning$1(false, '%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);
    }
    return false;
  }

  {
    // Don't bother comparing lengths in prod because these arrays should be
    // passed inline.
    if (nextDeps.length !== prevDeps.length) {
      warning$1(false, 'The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\n\n' + 'Previous: %s\n' + 'Incoming: %s', currentHookNameInDev, '[' + nextDeps.join(', ') + ']', '[' + prevDeps.join(', ') + ']');
    }
  }
  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {
    if (is(nextDeps[i], prevDeps[i])) {
      continue;
    }
    return false;
  }
  return true;
}

function renderWithHooks(current, workInProgress, Component, props, refOrContext, nextRenderExpirationTime) {
  renderExpirationTime = nextRenderExpirationTime;
  currentlyRenderingFiber$1 = workInProgress;
  nextCurrentHook = current !== null ? current.memoizedState : null;

  {
    hookTypesDev = current !== null ? current._debugHookTypes : null;
    hookTypesUpdateIndexDev = -1;
  }

  // The following should have already been reset
  // currentHook = null;
  // workInProgressHook = null;

  // remainingExpirationTime = NoWork;
  // componentUpdateQueue = null;

  // didScheduleRenderPhaseUpdate = false;
  // renderPhaseUpdates = null;
  // numberOfReRenders = 0;
  // sideEffectTag = 0;

  // TODO Warn if no hooks are used at all during mount, then some are used during update.
  // Currently we will identify the update render as a mount because nextCurrentHook === null.
  // This is tricky because it's valid for certain types of components (e.g. React.lazy)

  // Using nextCurrentHook to differentiate between mount/update only works if at least one stateful hook is used.
  // Non-stateful hooks (e.g. context) don't get added to memoizedState,
  // so nextCurrentHook would be null during updates and mounts.
  {
    if (nextCurrentHook !== null) {
      ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;
    } else if (hookTypesDev !== null) {
      // This dispatcher handles an edge case where a component is updating,
      // but no stateful hooks have been used.
      // We want to match the production code behavior (which will use HooksDispatcherOnMount),
      // but with the extra DEV validation to ensure hooks ordering hasn't changed.
      // This dispatcher does that.
      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;
    } else {
      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;
    }
  }

  var children = Component(props, refOrContext);

  if (didScheduleRenderPhaseUpdate) {
    do {
      didScheduleRenderPhaseUpdate = false;
      numberOfReRenders += 1;

      // Start over from the beginning of the list
      nextCurrentHook = current !== null ? current.memoizedState : null;
      nextWorkInProgressHook = firstWorkInProgressHook;

      currentHook = null;
      workInProgressHook = null;
      componentUpdateQueue = null;

      {
        // Also validate hook order for cascading updates.
        hookTypesUpdateIndexDev = -1;
      }

      ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;

      children = Component(props, refOrContext);
    } while (didScheduleRenderPhaseUpdate);

    renderPhaseUpdates = null;
    numberOfReRenders = 0;
  }

  // We can assume the previous dispatcher is always this one, since we set it
  // at the beginning of the render phase and there's no re-entrancy.
  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;

  var renderedWork = currentlyRenderingFiber$1;

  renderedWork.memoizedState = firstWorkInProgressHook;
  renderedWork.expirationTime = remainingExpirationTime;
  renderedWork.updateQueue = componentUpdateQueue;
  renderedWork.effectTag |= sideEffectTag;

  {
    renderedWork._debugHookTypes = hookTypesDev;
  }

  // This check uses currentHook so that it works the same in DEV and prod bundles.
  // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.
  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;

  renderExpirationTime = NoWork;
  currentlyRenderingFiber$1 = null;

  currentHook = null;
  nextCurrentHook = null;
  firstWorkInProgressHook = null;
  workInProgressHook = null;
  nextWorkInProgressHook = null;

  {
    currentHookNameInDev = null;
    hookTypesDev = null;
    hookTypesUpdateIndexDev = -1;
  }

  remainingExpirationTime = NoWork;
  componentUpdateQueue = null;
  sideEffectTag = 0;

  // These were reset above
  // didScheduleRenderPhaseUpdate = false;
  // renderPhaseUpdates = null;
  // numberOfReRenders = 0;

  !!didRenderTooFewHooks ? invariant(false, 'Rendered fewer hooks than expected. This may be caused by an accidental early return statement.') : void 0;

  return children;
}

function bailoutHooks(current, workInProgress, expirationTime) {
  workInProgress.updateQueue = current.updateQueue;
  workInProgress.effectTag &= ~(Passive | Update);
  if (current.expirationTime <= expirationTime) {
    current.expirationTime = NoWork;
  }
}

function resetHooks() {
  // We can assume the previous dispatcher is always this one, since we set it
  // at the beginning of the render phase and there's no re-entrancy.
  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;

  // This is used to reset the state of this module when a component throws.
  // It's also called inside mountIndeterminateComponent if we determine the
  // component is a module-style component.
  renderExpirationTime = NoWork;
  currentlyRenderingFiber$1 = null;

  currentHook = null;
  nextCurrentHook = null;
  firstWorkInProgressHook = null;
  workInProgressHook = null;
  nextWorkInProgressHook = null;

  {
    hookTypesDev = null;
    hookTypesUpdateIndexDev = -1;

    currentHookNameInDev = null;
  }

  remainingExpirationTime = NoWork;
  componentUpdateQueue = null;
  sideEffectTag = 0;

  didScheduleRenderPhaseUpdate = false;
  renderPhaseUpdates = null;
  numberOfReRenders = 0;
}

function mountWorkInProgressHook() {
  var hook = {
    memoizedState: null,

    baseState: null,
    queue: null,
    baseUpdate: null,

    next: null
  };

  if (workInProgressHook === null) {
    // This is the first hook in the list
    firstWorkInProgressHook = workInProgressHook = hook;
  } else {
    // Append to the end of the list
    workInProgressHook = workInProgressHook.next = hook;
  }
  return workInProgressHook;
}

function updateWorkInProgressHook() {
  // This function is used both for updates and for re-renders triggered by a
  // render phase update. It assumes there is either a current hook we can
  // clone, or a work-in-progress hook from a previous render pass that we can
  // use as a base. When we reach the end of the base list, we must switch to
  // the dispatcher used for mounts.
  if (nextWorkInProgressHook !== null) {
    // There's already a work-in-progress. Reuse it.
    workInProgressHook = nextWorkInProgressHook;
    nextWorkInProgressHook = workInProgressHook.next;

    currentHook = nextCurrentHook;
    nextCurrentHook = currentHook !== null ? currentHook.next : null;
  } else {
    // Clone from the current hook.
    !(nextCurrentHook !== null) ? invariant(false, 'Rendered more hooks than during the previous render.') : void 0;
    currentHook = nextCurrentHook;

    var newHook = {
      memoizedState: currentHook.memoizedState,

      baseState: currentHook.baseState,
      queue: currentHook.queue,
      baseUpdate: currentHook.baseUpdate,

      next: null
    };

    if (workInProgressHook === null) {
      // This is the first hook in the list.
      workInProgressHook = firstWorkInProgressHook = newHook;
    } else {
      // Append to the end of the list.
      workInProgressHook = workInProgressHook.next = newHook;
    }
    nextCurrentHook = currentHook.next;
  }
  return workInProgressHook;
}

function createFunctionComponentUpdateQueue() {
  return {
    lastEffect: null
  };
}

function basicStateReducer(state, action) {
  return typeof action === 'function' ? action(state) : action;
}

function mountReducer(reducer, initialArg, init) {
  var hook = mountWorkInProgressHook();
  var initialState = void 0;
  if (init !== undefined) {
    initialState = init(initialArg);
  } else {
    initialState = initialArg;
  }
  hook.memoizedState = hook.baseState = initialState;
  var queue = hook.queue = {
    last: null,
    dispatch: null,
    eagerReducer: reducer,
    eagerState: initialState
  };
  var dispatch = queue.dispatch = dispatchAction.bind(null,
  // Flow doesn't know this is non-null, but we do.
  currentlyRenderingFiber$1, queue);
  return [hook.memoizedState, dispatch];
}

function updateReducer(reducer, initialArg, init) {
  var hook = updateWorkInProgressHook();
  var queue = hook.queue;
  !(queue !== null) ? invariant(false, 'Should have a queue. This is likely a bug in React. Please file an issue.') : void 0;

  if (numberOfReRenders > 0) {
    // This is a re-render. Apply the new render phase updates to the previous
    var _dispatch = queue.dispatch;
    if (renderPhaseUpdates !== null) {
      // Render phase updates are stored in a map of queue -> linked list
      var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);
      if (firstRenderPhaseUpdate !== undefined) {
        renderPhaseUpdates.delete(queue);
        var newState = hook.memoizedState;
        var update = firstRenderPhaseUpdate;
        do {
          // Process this render phase update. We don't have to check the
          // priority because it will always be the same as the current
          // render's.
          var _action = update.action;
          newState = reducer(newState, _action);
          update = update.next;
        } while (update !== null);

        // Mark that the fiber performed work, but only if the new state is
        // different from the current state.
        if (!is(newState, hook.memoizedState)) {
          markWorkInProgressReceivedUpdate();
        }

        hook.memoizedState = newState;
        // Don't persist the state accumlated from the render phase updates to
        // the base state unless the queue is empty.
        // TODO: Not sure if this is the desired semantics, but it's what we
        // do for gDSFP. I can't remember why.
        if (hook.baseUpdate === queue.last) {
          hook.baseState = newState;
        }

        queue.eagerReducer = reducer;
        queue.eagerState = newState;

        return [newState, _dispatch];
      }
    }
    return [hook.memoizedState, _dispatch];
  }

  // The last update in the entire queue
  var last = queue.last;
  // The last update that is part of the base state.
  var baseUpdate = hook.baseUpdate;
  var baseState = hook.baseState;

  // Find the first unprocessed update.
  var first = void 0;
  if (baseUpdate !== null) {
    if (last !== null) {
      // For the first update, the queue is a circular linked list where
      // `queue.last.next = queue.first`. Once the first update commits, and
      // the `baseUpdate` is no longer empty, we can unravel the list.
      last.next = null;
    }
    first = baseUpdate.next;
  } else {
    first = last !== null ? last.next : null;
  }
  if (first !== null) {
    var _newState = baseState;
    var newBaseState = null;
    var newBaseUpdate = null;
    var prevUpdate = baseUpdate;
    var _update = first;
    var didSkip = false;
    do {
      var updateExpirationTime = _update.expirationTime;
      if (updateExpirationTime < renderExpirationTime) {
        // Priority is insufficient. Skip this update. If this is the first
        // skipped update, the previous update/state is the new base
        // update/state.
        if (!didSkip) {
          didSkip = true;
          newBaseUpdate = prevUpdate;
          newBaseState = _newState;
        }
        // Update the remaining priority in the queue.
        if (updateExpirationTime > remainingExpirationTime) {
          remainingExpirationTime = updateExpirationTime;
        }
      } else {
        // Process this update.
        if (_update.eagerReducer === reducer) {
          // If this update was processed eagerly, and its reducer matches the
          // current reducer, we can use the eagerly computed state.
          _newState = _update.eagerState;
        } else {
          var _action2 = _update.action;
          _newState = reducer(_newState, _action2);
        }
      }
      prevUpdate = _update;
      _update = _update.next;
    } while (_update !== null && _update !== first);

    if (!didSkip) {
      newBaseUpdate = prevUpdate;
      newBaseState = _newState;
    }

    // Mark that the fiber performed work, but only if the new state is
    // different from the current state.
    if (!is(_newState, hook.memoizedState)) {
      markWorkInProgressReceivedUpdate();
    }

    hook.memoizedState = _newState;
    hook.baseUpdate = newBaseUpdate;
    hook.baseState = newBaseState;

    queue.eagerReducer = reducer;
    queue.eagerState = _newState;
  }

  var dispatch = queue.dispatch;
  return [hook.memoizedState, dispatch];
}

function mountState(initialState) {
  var hook = mountWorkInProgressHook();
  if (typeof initialState === 'function') {
    initialState = initialState();
  }
  hook.memoizedState = hook.baseState = initialState;
  var queue = hook.queue = {
    last: null,
    dispatch: null,
    eagerReducer: basicStateReducer,
    eagerState: initialState
  };
  var dispatch = queue.dispatch = dispatchAction.bind(null,
  // Flow doesn't know this is non-null, but we do.
  currentlyRenderingFiber$1, queue);
  return [hook.memoizedState, dispatch];
}

function updateState(initialState) {
  return updateReducer(basicStateReducer, initialState);
}

function pushEffect(tag, create, destroy, deps) {
  var effect = {
    tag: tag,
    create: create,
    destroy: destroy,
    deps: deps,
    // Circular
    next: null
  };
  if (componentUpdateQueue === null) {
    componentUpdateQueue = createFunctionComponentUpdateQueue();
    componentUpdateQueue.lastEffect = effect.next = effect;
  } else {
    var _lastEffect = componentUpdateQueue.lastEffect;
    if (_lastEffect === null) {
      componentUpdateQueue.lastEffect = effect.next = effect;
    } else {
      var firstEffect = _lastEffect.next;
      _lastEffect.next = effect;
      effect.next = firstEffect;
      componentUpdateQueue.lastEffect = effect;
    }
  }
  return effect;
}

function mountRef(initialValue) {
  var hook = mountWorkInProgressHook();
  var ref = { current: initialValue };
  {
    Object.seal(ref);
  }
  hook.memoizedState = ref;
  return ref;
}

function updateRef(initialValue) {
  var hook = updateWorkInProgressHook();
  return hook.memoizedState;
}

function mountEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {
  var hook = mountWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  sideEffectTag |= fiberEffectTag;
  hook.memoizedState = pushEffect(hookEffectTag, create, undefined, nextDeps);
}

function updateEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {
  var hook = updateWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  var destroy = undefined;

  if (currentHook !== null) {
    var prevEffect = currentHook.memoizedState;
    destroy = prevEffect.destroy;
    if (nextDeps !== null) {
      var prevDeps = prevEffect.deps;
      if (areHookInputsEqual(nextDeps, prevDeps)) {
        pushEffect(NoEffect$1, create, destroy, nextDeps);
        return;
      }
    }
  }

  sideEffectTag |= fiberEffectTag;
  hook.memoizedState = pushEffect(hookEffectTag, create, destroy, nextDeps);
}

function mountEffect(create, deps) {
  return mountEffectImpl(Update | Passive, UnmountPassive | MountPassive, create, deps);
}

function updateEffect(create, deps) {
  return updateEffectImpl(Update | Passive, UnmountPassive | MountPassive, create, deps);
}

function mountLayoutEffect(create, deps) {
  return mountEffectImpl(Update, UnmountMutation | MountLayout, create, deps);
}

function updateLayoutEffect(create, deps) {
  return updateEffectImpl(Update, UnmountMutation | MountLayout, create, deps);
}

function imperativeHandleEffect(create, ref) {
  if (typeof ref === 'function') {
    var refCallback = ref;
    var _inst = create();
    refCallback(_inst);
    return function () {
      refCallback(null);
    };
  } else if (ref !== null && ref !== undefined) {
    var refObject = ref;
    {
      !refObject.hasOwnProperty('current') ? warning$1(false, 'Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}') : void 0;
    }
    var _inst2 = create();
    refObject.current = _inst2;
    return function () {
      refObject.current = null;
    };
  }
}

function mountImperativeHandle(ref, create, deps) {
  {
    !(typeof create === 'function') ? warning$1(false, 'Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null') : void 0;
  }

  // TODO: If deps are provided, should we skip comparing the ref itself?
  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;

  return mountEffectImpl(Update, UnmountMutation | MountLayout, imperativeHandleEffect.bind(null, create, ref), effectDeps);
}

function updateImperativeHandle(ref, create, deps) {
  {
    !(typeof create === 'function') ? warning$1(false, 'Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null') : void 0;
  }

  // TODO: If deps are provided, should we skip comparing the ref itself?
  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;

  return updateEffectImpl(Update, UnmountMutation | MountLayout, imperativeHandleEffect.bind(null, create, ref), effectDeps);
}

function mountDebugValue(value, formatterFn) {
  // This hook is normally a no-op.
  // The react-debug-hooks package injects its own implementation
  // so that e.g. DevTools can display custom hook values.
}

var updateDebugValue = mountDebugValue;

function mountCallback(callback, deps) {
  var hook = mountWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  hook.memoizedState = [callback, nextDeps];
  return callback;
}

function updateCallback(callback, deps) {
  var hook = updateWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  var prevState = hook.memoizedState;
  if (prevState !== null) {
    if (nextDeps !== null) {
      var prevDeps = prevState[1];
      if (areHookInputsEqual(nextDeps, prevDeps)) {
        return prevState[0];
      }
    }
  }
  hook.memoizedState = [callback, nextDeps];
  return callback;
}

function mountMemo(nextCreate, deps) {
  var hook = mountWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  var nextValue = nextCreate();
  hook.memoizedState = [nextValue, nextDeps];
  return nextValue;
}

function updateMemo(nextCreate, deps) {
  var hook = updateWorkInProgressHook();
  var nextDeps = deps === undefined ? null : deps;
  var prevState = hook.memoizedState;
  if (prevState !== null) {
    // Assume these are defined. If they're not, areHookInputsEqual will warn.
    if (nextDeps !== null) {
      var prevDeps = prevState[1];
      if (areHookInputsEqual(nextDeps, prevDeps)) {
        return prevState[0];
      }
    }
  }
  var nextValue = nextCreate();
  hook.memoizedState = [nextValue, nextDeps];
  return nextValue;
}

// in a test-like environment, we want to warn if dispatchAction()
// is called outside of a batchedUpdates/TestUtils.act(...) call.
var shouldWarnForUnbatchedSetState = false;

{
  // jest isn't a 'global', it's just exposed to tests via a wrapped function
  // further, this isn't a test file, so flow doesn't recognize the symbol. So...
  // $FlowExpectedError - because requirements don't give a damn about your type sigs.
  if ('undefined' !== typeof jest) {
    shouldWarnForUnbatchedSetState = true;
  }
}

function dispatchAction(fiber, queue, action) {
  !(numberOfReRenders < RE_RENDER_LIMIT) ? invariant(false, 'Too many re-renders. React limits the number of renders to prevent an infinite loop.') : void 0;

  {
    !(arguments.length <= 3) ? warning$1(false, "State updates from the useState() and useReducer() Hooks don't support the " + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().') : void 0;
  }

  var alternate = fiber.alternate;
  if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {
    // This is a render phase update. Stash it in a lazily-created map of
    // queue -> linked list of updates. After this render pass, we'll restart
    // and apply the stashed updates on top of the work-in-progress hook.
    didScheduleRenderPhaseUpdate = true;
    var update = {
      expirationTime: renderExpirationTime,
      action: action,
      eagerReducer: null,
      eagerState: null,
      next: null
    };
    if (renderPhaseUpdates === null) {
      renderPhaseUpdates = new Map();
    }
    var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);
    if (firstRenderPhaseUpdate === undefined) {
      renderPhaseUpdates.set(queue, update);
    } else {
      // Append the update to the end of the list.
      var lastRenderPhaseUpdate = firstRenderPhaseUpdate;
      while (lastRenderPhaseUpdate.next !== null) {
        lastRenderPhaseUpdate = lastRenderPhaseUpdate.next;
      }
      lastRenderPhaseUpdate.next = update;
    }
  } else {
    flushPassiveEffects();

    var currentTime = requestCurrentTime();
    var _expirationTime = computeExpirationForFiber(currentTime, fiber);

    var _update2 = {
      expirationTime: _expirationTime,
      action: action,
      eagerReducer: null,
      eagerState: null,
      next: null
    };

    // Append the update to the end of the list.
    var _last = queue.last;
    if (_last === null) {
      // This is the first update. Create a circular list.
      _update2.next = _update2;
    } else {
      var first = _last.next;
      if (first !== null) {
        // Still circular.
        _update2.next = first;
      }
      _last.next = _update2;
    }
    queue.last = _update2;

    if (fiber.expirationTime === NoWork && (alternate === null || alternate.expirationTime === NoWork)) {
      // The queue is currently empty, which means we can eagerly compute the
      // next state before entering the render phase. If the new state is the
      // same as the current state, we may be able to bail out entirely.
      var _eagerReducer = queue.eagerReducer;
      if (_eagerReducer !== null) {
        var prevDispatcher = void 0;
        {
          prevDispatcher = ReactCurrentDispatcher$1.current;
          ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
        }
        try {
          var currentState = queue.eagerState;
          var _eagerState = _eagerReducer(currentState, action);
          // Stash the eagerly computed state, and the reducer used to compute
          // it, on the update object. If the reducer hasn't changed by the
          // time we enter the render phase, then the eager state can be used
          // without calling the reducer again.
          _update2.eagerReducer = _eagerReducer;
          _update2.eagerState = _eagerState;
          if (is(_eagerState, currentState)) {
            // Fast path. We can bail out without scheduling React to re-render.
            // It's still possible that we'll need to rebase this update later,
            // if the component re-renders for a different reason and by that
            // time the reducer has changed.
            return;
          }
        } catch (error) {
          // Suppress the error. It will throw again in the render phase.
        } finally {
          {
            ReactCurrentDispatcher$1.current = prevDispatcher;
          }
        }
      }
    }
    {
      if (shouldWarnForUnbatchedSetState === true) {
        warnIfNotCurrentlyBatchingInDev(fiber);
      }
    }
    scheduleWork(fiber, _expirationTime);
  }
}

var ContextOnlyDispatcher = {
  readContext: readContext,

  useCallback: throwInvalidHookError,
  useContext: throwInvalidHookError,
  useEffect: throwInvalidHookError,
  useImperativeHandle: throwInvalidHookError,
  useLayoutEffect: throwInvalidHookError,
  useMemo: throwInvalidHookError,
  useReducer: throwInvalidHookError,
  useRef: throwInvalidHookError,
  useState: throwInvalidHookError,
  useDebugValue: throwInvalidHookError
};

var HooksDispatcherOnMountInDEV = null;
var HooksDispatcherOnMountWithHookTypesInDEV = null;
var HooksDispatcherOnUpdateInDEV = null;
var InvalidNestedHooksDispatcherOnMountInDEV = null;
var InvalidNestedHooksDispatcherOnUpdateInDEV = null;

{
  var warnInvalidContextAccess = function () {
    warning$1(false, 'Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');
  };

  var warnInvalidHookAccess = function () {
    warning$1(false, 'Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://fb.me/rules-of-hooks');
  };

  HooksDispatcherOnMountInDEV = {
    readContext: function (context, observedBits) {
      return readContext(context, observedBits);
    },
    useCallback: function (callback, deps) {
      currentHookNameInDev = 'useCallback';
      mountHookTypesDev();
      return mountCallback(callback, deps);
    },
    useContext: function (context, observedBits) {
      currentHookNameInDev = 'useContext';
      mountHookTypesDev();
      return readContext(context, observedBits);
    },
    useEffect: function (create, deps) {
      currentHookNameInDev = 'useEffect';
      mountHookTypesDev();
      return mountEffect(create, deps);
    },
    useImperativeHandle: function (ref, create, deps) {
      currentHookNameInDev = 'useImperativeHandle';
      mountHookTypesDev();
      return mountImperativeHandle(ref, create, deps);
    },
    useLayoutEffect: function (create, deps) {
      currentHookNameInDev = 'useLayoutEffect';
      mountHookTypesDev();
      return mountLayoutEffect(create, deps);
    },
    useMemo: function (create, deps) {
      currentHookNameInDev = 'useMemo';
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountMemo(create, deps);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useReducer: function (reducer, initialArg, init) {
      currentHookNameInDev = 'useReducer';
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountReducer(reducer, initialArg, init);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useRef: function (initialValue) {
      currentHookNameInDev = 'useRef';
      mountHookTypesDev();
      return mountRef(initialValue);
    },
    useState: function (initialState) {
      currentHookNameInDev = 'useState';
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountState(initialState);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useDebugValue: function (value, formatterFn) {
      currentHookNameInDev = 'useDebugValue';
      mountHookTypesDev();
      return mountDebugValue(value, formatterFn);
    }
  };

  HooksDispatcherOnMountWithHookTypesInDEV = {
    readContext: function (context, observedBits) {
      return readContext(context, observedBits);
    },
    useCallback: function (callback, deps) {
      currentHookNameInDev = 'useCallback';
      updateHookTypesDev();
      return mountCallback(callback, deps);
    },
    useContext: function (context, observedBits) {
      currentHookNameInDev = 'useContext';
      updateHookTypesDev();
      return readContext(context, observedBits);
    },
    useEffect: function (create, deps) {
      currentHookNameInDev = 'useEffect';
      updateHookTypesDev();
      return mountEffect(create, deps);
    },
    useImperativeHandle: function (ref, create, deps) {
      currentHookNameInDev = 'useImperativeHandle';
      updateHookTypesDev();
      return mountImperativeHandle(ref, create, deps);
    },
    useLayoutEffect: function (create, deps) {
      currentHookNameInDev = 'useLayoutEffect';
      updateHookTypesDev();
      return mountLayoutEffect(create, deps);
    },
    useMemo: function (create, deps) {
      currentHookNameInDev = 'useMemo';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountMemo(create, deps);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useReducer: function (reducer, initialArg, init) {
      currentHookNameInDev = 'useReducer';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountReducer(reducer, initialArg, init);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useRef: function (initialValue) {
      currentHookNameInDev = 'useRef';
      updateHookTypesDev();
      return mountRef(initialValue);
    },
    useState: function (initialState) {
      currentHookNameInDev = 'useState';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountState(initialState);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useDebugValue: function (value, formatterFn) {
      currentHookNameInDev = 'useDebugValue';
      updateHookTypesDev();
      return mountDebugValue(value, formatterFn);
    }
  };

  HooksDispatcherOnUpdateInDEV = {
    readContext: function (context, observedBits) {
      return readContext(context, observedBits);
    },
    useCallback: function (callback, deps) {
      currentHookNameInDev = 'useCallback';
      updateHookTypesDev();
      return updateCallback(callback, deps);
    },
    useContext: function (context, observedBits) {
      currentHookNameInDev = 'useContext';
      updateHookTypesDev();
      return readContext(context, observedBits);
    },
    useEffect: function (create, deps) {
      currentHookNameInDev = 'useEffect';
      updateHookTypesDev();
      return updateEffect(create, deps);
    },
    useImperativeHandle: function (ref, create, deps) {
      currentHookNameInDev = 'useImperativeHandle';
      updateHookTypesDev();
      return updateImperativeHandle(ref, create, deps);
    },
    useLayoutEffect: function (create, deps) {
      currentHookNameInDev = 'useLayoutEffect';
      updateHookTypesDev();
      return updateLayoutEffect(create, deps);
    },
    useMemo: function (create, deps) {
      currentHookNameInDev = 'useMemo';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateMemo(create, deps);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useReducer: function (reducer, initialArg, init) {
      currentHookNameInDev = 'useReducer';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateReducer(reducer, initialArg, init);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useRef: function (initialValue) {
      currentHookNameInDev = 'useRef';
      updateHookTypesDev();
      return updateRef(initialValue);
    },
    useState: function (initialState) {
      currentHookNameInDev = 'useState';
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateState(initialState);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useDebugValue: function (value, formatterFn) {
      currentHookNameInDev = 'useDebugValue';
      updateHookTypesDev();
      return updateDebugValue(value, formatterFn);
    }
  };

  InvalidNestedHooksDispatcherOnMountInDEV = {
    readContext: function (context, observedBits) {
      warnInvalidContextAccess();
      return readContext(context, observedBits);
    },
    useCallback: function (callback, deps) {
      currentHookNameInDev = 'useCallback';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountCallback(callback, deps);
    },
    useContext: function (context, observedBits) {
      currentHookNameInDev = 'useContext';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return readContext(context, observedBits);
    },
    useEffect: function (create, deps) {
      currentHookNameInDev = 'useEffect';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountEffect(create, deps);
    },
    useImperativeHandle: function (ref, create, deps) {
      currentHookNameInDev = 'useImperativeHandle';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountImperativeHandle(ref, create, deps);
    },
    useLayoutEffect: function (create, deps) {
      currentHookNameInDev = 'useLayoutEffect';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountLayoutEffect(create, deps);
    },
    useMemo: function (create, deps) {
      currentHookNameInDev = 'useMemo';
      warnInvalidHookAccess();
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountMemo(create, deps);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useReducer: function (reducer, initialArg, init) {
      currentHookNameInDev = 'useReducer';
      warnInvalidHookAccess();
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountReducer(reducer, initialArg, init);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useRef: function (initialValue) {
      currentHookNameInDev = 'useRef';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountRef(initialValue);
    },
    useState: function (initialState) {
      currentHookNameInDev = 'useState';
      warnInvalidHookAccess();
      mountHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
      try {
        return mountState(initialState);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useDebugValue: function (value, formatterFn) {
      currentHookNameInDev = 'useDebugValue';
      warnInvalidHookAccess();
      mountHookTypesDev();
      return mountDebugValue(value, formatterFn);
    }
  };

  InvalidNestedHooksDispatcherOnUpdateInDEV = {
    readContext: function (context, observedBits) {
      warnInvalidContextAccess();
      return readContext(context, observedBits);
    },
    useCallback: function (callback, deps) {
      currentHookNameInDev = 'useCallback';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateCallback(callback, deps);
    },
    useContext: function (context, observedBits) {
      currentHookNameInDev = 'useContext';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return readContext(context, observedBits);
    },
    useEffect: function (create, deps) {
      currentHookNameInDev = 'useEffect';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateEffect(create, deps);
    },
    useImperativeHandle: function (ref, create, deps) {
      currentHookNameInDev = 'useImperativeHandle';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateImperativeHandle(ref, create, deps);
    },
    useLayoutEffect: function (create, deps) {
      currentHookNameInDev = 'useLayoutEffect';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateLayoutEffect(create, deps);
    },
    useMemo: function (create, deps) {
      currentHookNameInDev = 'useMemo';
      warnInvalidHookAccess();
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateMemo(create, deps);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useReducer: function (reducer, initialArg, init) {
      currentHookNameInDev = 'useReducer';
      warnInvalidHookAccess();
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateReducer(reducer, initialArg, init);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useRef: function (initialValue) {
      currentHookNameInDev = 'useRef';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateRef(initialValue);
    },
    useState: function (initialState) {
      currentHookNameInDev = 'useState';
      warnInvalidHookAccess();
      updateHookTypesDev();
      var prevDispatcher = ReactCurrentDispatcher$1.current;
      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
      try {
        return updateState(initialState);
      } finally {
        ReactCurrentDispatcher$1.current = prevDispatcher;
      }
    },
    useDebugValue: function (value, formatterFn) {
      currentHookNameInDev = 'useDebugValue';
      warnInvalidHookAccess();
      updateHookTypesDev();
      return updateDebugValue(value, formatterFn);
    }
  };
}

var commitTime = 0;
var profilerStartTime = -1;

function getCommitTime() {
  return commitTime;
}

function recordCommitTime() {
  if (!enableProfilerTimer) {
    return;
  }
  commitTime = scheduler.unstable_now();
}

function startProfilerTimer(fiber) {
  if (!enableProfilerTimer) {
    return;
  }

  profilerStartTime = scheduler.unstable_now();

  if (fiber.actualStartTime < 0) {
    fiber.actualStartTime = scheduler.unstable_now();
  }
}

function stopProfilerTimerIfRunning(fiber) {
  if (!enableProfilerTimer) {
    return;
  }
  profilerStartTime = -1;
}

function stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {
  if (!enableProfilerTimer) {
    return;
  }

  if (profilerStartTime >= 0) {
    var elapsedTime = scheduler.unstable_now() - profilerStartTime;
    fiber.actualDuration += elapsedTime;
    if (overrideBaseTime) {
      fiber.selfBaseDuration = elapsedTime;
    }
    profilerStartTime = -1;
  }
}

// The deepest Fiber on the stack involved in a hydration context.
// This may have been an insertion or a hydration.
var hydrationParentFiber = null;
var nextHydratableInstance = null;
var isHydrating = false;

function enterHydrationState(fiber) {
  if (!supportsHydration) {
    return false;
  }

  var parentInstance = fiber.stateNode.containerInfo;
  nextHydratableInstance = getFirstHydratableChild(parentInstance);
  hydrationParentFiber = fiber;
  isHydrating = true;
  return true;
}

function reenterHydrationStateFromDehydratedSuspenseInstance(fiber) {
  if (!supportsHydration) {
    return false;
  }

  var suspenseInstance = fiber.stateNode;
  nextHydratableInstance = getNextHydratableSibling(suspenseInstance);
  popToNextHostParent(fiber);
  isHydrating = true;
  return true;
}

function deleteHydratableInstance(returnFiber, instance) {
  {
    switch (returnFiber.tag) {
      case HostRoot:
        didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);
        break;
      case HostComponent:
        didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);
        break;
    }
  }

  var childToDelete = createFiberFromHostInstanceForDeletion();
  childToDelete.stateNode = instance;
  childToDelete.return = returnFiber;
  childToDelete.effectTag = Deletion;

  // This might seem like it belongs on progressedFirstDeletion. However,
  // these children are not part of the reconciliation list of children.
  // Even if we abort and rereconcile the children, that will try to hydrate
  // again and the nodes are still in the host tree so these will be
  // recreated.
  if (returnFiber.lastEffect !== null) {
    returnFiber.lastEffect.nextEffect = childToDelete;
    returnFiber.lastEffect = childToDelete;
  } else {
    returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;
  }
}

function insertNonHydratedInstance(returnFiber, fiber) {
  fiber.effectTag |= Placement;
  {
    switch (returnFiber.tag) {
      case HostRoot:
        {
          var parentContainer = returnFiber.stateNode.containerInfo;
          switch (fiber.tag) {
            case HostComponent:
              var type = fiber.type;
              var props = fiber.pendingProps;
              didNotFindHydratableContainerInstance(parentContainer, type, props);
              break;
            case HostText:
              var text = fiber.pendingProps;
              didNotFindHydratableContainerTextInstance(parentContainer, text);
              break;
            case SuspenseComponent:
              
              break;
          }
          break;
        }
      case HostComponent:
        {
          var parentType = returnFiber.type;
          var parentProps = returnFiber.memoizedProps;
          var parentInstance = returnFiber.stateNode;
          switch (fiber.tag) {
            case HostComponent:
              var _type = fiber.type;
              var _props = fiber.pendingProps;
              didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props);
              break;
            case HostText:
              var _text = fiber.pendingProps;
              didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);
              break;
            case SuspenseComponent:
              didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance);
              break;
          }
          break;
        }
      default:
        return;
    }
  }
}

function tryHydrate(fiber, nextInstance) {
  switch (fiber.tag) {
    case HostComponent:
      {
        var type = fiber.type;
        var props = fiber.pendingProps;
        var instance = canHydrateInstance(nextInstance, type, props);
        if (instance !== null) {
          fiber.stateNode = instance;
          return true;
        }
        return false;
      }
    case HostText:
      {
        var text = fiber.pendingProps;
        var textInstance = canHydrateTextInstance(nextInstance, text);
        if (textInstance !== null) {
          fiber.stateNode = textInstance;
          return true;
        }
        return false;
      }
    case SuspenseComponent:
      {
        if (enableSuspenseServerRenderer) {
          var suspenseInstance = canHydrateSuspenseInstance(nextInstance);
          if (suspenseInstance !== null) {
            // Downgrade the tag to a dehydrated component until we've hydrated it.
            fiber.tag = DehydratedSuspenseComponent;
            fiber.stateNode = suspenseInstance;
            return true;
          }
        }
        return false;
      }
    default:
      return false;
  }
}

function tryToClaimNextHydratableInstance(fiber) {
  if (!isHydrating) {
    return;
  }
  var nextInstance = nextHydratableInstance;
  if (!nextInstance) {
    // Nothing to hydrate. Make it an insertion.
    insertNonHydratedInstance(hydrationParentFiber, fiber);
    isHydrating = false;
    hydrationParentFiber = fiber;
    return;
  }
  var firstAttemptedInstance = nextInstance;
  if (!tryHydrate(fiber, nextInstance)) {
    // If we can't hydrate this instance let's try the next one.
    // We use this as a heuristic. It's based on intuition and not data so it
    // might be flawed or unnecessary.
    nextInstance = getNextHydratableSibling(firstAttemptedInstance);
    if (!nextInstance || !tryHydrate(fiber, nextInstance)) {
      // Nothing to hydrate. Make it an insertion.
      insertNonHydratedInstance(hydrationParentFiber, fiber);
      isHydrating = false;
      hydrationParentFiber = fiber;
      return;
    }
    // We matched the next one, we'll now assume that the first one was
    // superfluous and we'll delete it. Since we can't eagerly delete it
    // we'll have to schedule a deletion. To do that, this node needs a dummy
    // fiber associated with it.
    deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);
  }
  hydrationParentFiber = fiber;
  nextHydratableInstance = getFirstHydratableChild(nextInstance);
}

function prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {
  if (!supportsHydration) {
    invariant(false, 'Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');
  }

  var instance = fiber.stateNode;
  var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber);
  // TODO: Type this specific to this type of component.
  fiber.updateQueue = updatePayload;
  // If the update payload indicates that there is a change or if there
  // is a new ref we mark this as an update.
  if (updatePayload !== null) {
    return true;
  }
  return false;
}

function prepareToHydrateHostTextInstance(fiber) {
  if (!supportsHydration) {
    invariant(false, 'Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');
  }

  var textInstance = fiber.stateNode;
  var textContent = fiber.memoizedProps;
  var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);
  {
    if (shouldUpdate) {
      // We assume that prepareToHydrateHostTextInstance is called in a context where the
      // hydration parent is the parent host component of this host text.
      var returnFiber = hydrationParentFiber;
      if (returnFiber !== null) {
        switch (returnFiber.tag) {
          case HostRoot:
            {
              var parentContainer = returnFiber.stateNode.containerInfo;
              didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);
              break;
            }
          case HostComponent:
            {
              var parentType = returnFiber.type;
              var parentProps = returnFiber.memoizedProps;
              var parentInstance = returnFiber.stateNode;
              didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);
              break;
            }
        }
      }
    }
  }
  return shouldUpdate;
}

function skipPastDehydratedSuspenseInstance(fiber) {
  if (!supportsHydration) {
    invariant(false, 'Expected skipPastDehydratedSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');
  }
  var suspenseInstance = fiber.stateNode;
  !suspenseInstance ? invariant(false, 'Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  nextHydratableInstance = getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);
}

function popToNextHostParent(fiber) {
  var parent = fiber.return;
  while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== DehydratedSuspenseComponent) {
    parent = parent.return;
  }
  hydrationParentFiber = parent;
}

function popHydrationState(fiber) {
  if (!supportsHydration) {
    return false;
  }
  if (fiber !== hydrationParentFiber) {
    // We're deeper than the current hydration context, inside an inserted
    // tree.
    return false;
  }
  if (!isHydrating) {
    // If we're not currently hydrating but we're in a hydration context, then
    // we were an insertion and now need to pop up reenter hydration of our
    // siblings.
    popToNextHostParent(fiber);
    isHydrating = true;
    return false;
  }

  var type = fiber.type;

  // If we have any remaining hydratable nodes, we need to delete them now.
  // We only do this deeper than head and body since they tend to have random
  // other nodes in them. We also ignore components with pure text content in
  // side of them.
  // TODO: Better heuristic.
  if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {
    var nextInstance = nextHydratableInstance;
    while (nextInstance) {
      deleteHydratableInstance(fiber, nextInstance);
      nextInstance = getNextHydratableSibling(nextInstance);
    }
  }

  popToNextHostParent(fiber);
  nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;
  return true;
}

function resetHydrationState() {
  if (!supportsHydration) {
    return;
  }

  hydrationParentFiber = null;
  nextHydratableInstance = null;
  isHydrating = false;
}

var ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;

var didReceiveUpdate = false;

var didWarnAboutBadClass = void 0;
var didWarnAboutContextTypeOnFunctionComponent = void 0;
var didWarnAboutGetDerivedStateOnFunctionComponent = void 0;
var didWarnAboutFunctionRefs = void 0;
var didWarnAboutReassigningProps = void 0;

{
  didWarnAboutBadClass = {};
  didWarnAboutContextTypeOnFunctionComponent = {};
  didWarnAboutGetDerivedStateOnFunctionComponent = {};
  didWarnAboutFunctionRefs = {};
  didWarnAboutReassigningProps = false;
}

function reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime) {
  if (current$$1 === null) {
    // If this is a fresh new component that hasn't been rendered yet, we
    // won't update its child set by applying minimal side-effects. Instead,
    // we will add them all to the child before it gets rendered. That means
    // we can optimize this reconciliation pass by not tracking side-effects.
    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
  } else {
    // If the current child is the same as the work in progress, it means that
    // we haven't yet started any work on these children. Therefore, we use
    // the clone algorithm to create a copy of all the current children.

    // If we had any progressed work already, that is invalid at this point so
    // let's throw it out.
    workInProgress.child = reconcileChildFibers(workInProgress, current$$1.child, nextChildren, renderExpirationTime);
  }
}

function forceUnmountCurrentAndReconcile(current$$1, workInProgress, nextChildren, renderExpirationTime) {
  // This function is fork of reconcileChildren. It's used in cases where we
  // want to reconcile without matching against the existing set. This has the
  // effect of all current children being unmounted; even if the type and key
  // are the same, the old child is unmounted and a new child is created.
  //
  // To do this, we're going to go through the reconcile algorithm twice. In
  // the first pass, we schedule a deletion for all the current children by
  // passing null.
  workInProgress.child = reconcileChildFibers(workInProgress, current$$1.child, null, renderExpirationTime);
  // In the second pass, we mount the new children. The trick here is that we
  // pass null in place of where we usually pass the current child set. This has
  // the effect of remounting all children regardless of whether their their
  // identity matches.
  workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
}

function updateForwardRef(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {
  // TODO: current can be non-null here even if the component
  // hasn't yet mounted. This happens after the first render suspends.
  // We'll need to figure out if this is fine or can cause issues.

  {
    if (workInProgress.type !== workInProgress.elementType) {
      // Lazy component props can't be validated in createElement
      // because they're only guaranteed to be resolved here.
      var innerPropTypes = Component.propTypes;
      if (innerPropTypes) {
        checkPropTypes(innerPropTypes, nextProps, // Resolved props
        'prop', getComponentName(Component), getCurrentFiberStackInDev);
      }
    }
  }

  var render = Component.render;
  var ref = workInProgress.ref;

  // The rest is a fork of updateFunctionComponent
  var nextChildren = void 0;
  prepareToReadContext(workInProgress, renderExpirationTime);
  {
    ReactCurrentOwner$3.current = workInProgress;
    setCurrentPhase('render');
    nextChildren = renderWithHooks(current$$1, workInProgress, render, nextProps, ref, renderExpirationTime);
    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
      // Only double-render components with Hooks
      if (workInProgress.memoizedState !== null) {
        nextChildren = renderWithHooks(current$$1, workInProgress, render, nextProps, ref, renderExpirationTime);
      }
    }
    setCurrentPhase(null);
  }

  if (current$$1 !== null && !didReceiveUpdate) {
    bailoutHooks(current$$1, workInProgress, renderExpirationTime);
    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
  }

  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;
  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function updateMemoComponent(current$$1, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {
  if (current$$1 === null) {
    var type = Component.type;
    if (isSimpleFunctionComponent(type) && Component.compare === null &&
    // SimpleMemoComponent codepath doesn't resolve outer props either.
    Component.defaultProps === undefined) {
      // If this is a plain function component without default props,
      // and with only the default shallow comparison, we upgrade it
      // to a SimpleMemoComponent to allow fast path updates.
      workInProgress.tag = SimpleMemoComponent;
      workInProgress.type = type;
      {
        validateFunctionComponentInDev(workInProgress, type);
      }
      return updateSimpleMemoComponent(current$$1, workInProgress, type, nextProps, updateExpirationTime, renderExpirationTime);
    }
    {
      var innerPropTypes = type.propTypes;
      if (innerPropTypes) {
        // Inner memo component props aren't currently validated in createElement.
        // We could move it there, but we'd still need this for lazy code path.
        checkPropTypes(innerPropTypes, nextProps, // Resolved props
        'prop', getComponentName(type), getCurrentFiberStackInDev);
      }
    }
    var child = createFiberFromTypeAndProps(Component.type, null, nextProps, null, workInProgress.mode, renderExpirationTime);
    child.ref = workInProgress.ref;
    child.return = workInProgress;
    workInProgress.child = child;
    return child;
  }
  {
    var _type = Component.type;
    var _innerPropTypes = _type.propTypes;
    if (_innerPropTypes) {
      // Inner memo component props aren't currently validated in createElement.
      // We could move it there, but we'd still need this for lazy code path.
      checkPropTypes(_innerPropTypes, nextProps, // Resolved props
      'prop', getComponentName(_type), getCurrentFiberStackInDev);
    }
  }
  var currentChild = current$$1.child; // This is always exactly one child
  if (updateExpirationTime < renderExpirationTime) {
    // This will be the props with resolved defaultProps,
    // unlike current.memoizedProps which will be the unresolved ones.
    var prevProps = currentChild.memoizedProps;
    // Default to shallow comparison
    var compare = Component.compare;
    compare = compare !== null ? compare : shallowEqual;
    if (compare(prevProps, nextProps) && current$$1.ref === workInProgress.ref) {
      return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
    }
  }
  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;
  var newChild = createWorkInProgress(currentChild, nextProps, renderExpirationTime);
  newChild.ref = workInProgress.ref;
  newChild.return = workInProgress;
  workInProgress.child = newChild;
  return newChild;
}

function updateSimpleMemoComponent(current$$1, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {
  // TODO: current can be non-null here even if the component
  // hasn't yet mounted. This happens when the inner render suspends.
  // We'll need to figure out if this is fine or can cause issues.

  {
    if (workInProgress.type !== workInProgress.elementType) {
      // Lazy component props can't be validated in createElement
      // because they're only guaranteed to be resolved here.
      var outerMemoType = workInProgress.elementType;
      if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {
        // We warn when you define propTypes on lazy()
        // so let's just skip over it to find memo() outer wrapper.
        // Inner props for memo are validated later.
        outerMemoType = refineResolvedLazyComponent(outerMemoType);
      }
      var outerPropTypes = outerMemoType && outerMemoType.propTypes;
      if (outerPropTypes) {
        checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)
        'prop', getComponentName(outerMemoType), getCurrentFiberStackInDev);
      }
      // Inner propTypes will be validated in the function component path.
    }
  }
  if (current$$1 !== null) {
    var prevProps = current$$1.memoizedProps;
    if (shallowEqual(prevProps, nextProps) && current$$1.ref === workInProgress.ref) {
      didReceiveUpdate = false;
      if (updateExpirationTime < renderExpirationTime) {
        return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
      }
    }
  }
  return updateFunctionComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime);
}

function updateFragment(current$$1, workInProgress, renderExpirationTime) {
  var nextChildren = workInProgress.pendingProps;
  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function updateMode(current$$1, workInProgress, renderExpirationTime) {
  var nextChildren = workInProgress.pendingProps.children;
  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function updateProfiler(current$$1, workInProgress, renderExpirationTime) {
  if (enableProfilerTimer) {
    workInProgress.effectTag |= Update;
  }
  var nextProps = workInProgress.pendingProps;
  var nextChildren = nextProps.children;
  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function markRef(current$$1, workInProgress) {
  var ref = workInProgress.ref;
  if (current$$1 === null && ref !== null || current$$1 !== null && current$$1.ref !== ref) {
    // Schedule a Ref effect
    workInProgress.effectTag |= Ref;
  }
}

function updateFunctionComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {
  {
    if (workInProgress.type !== workInProgress.elementType) {
      // Lazy component props can't be validated in createElement
      // because they're only guaranteed to be resolved here.
      var innerPropTypes = Component.propTypes;
      if (innerPropTypes) {
        checkPropTypes(innerPropTypes, nextProps, // Resolved props
        'prop', getComponentName(Component), getCurrentFiberStackInDev);
      }
    }
  }

  var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);
  var context = getMaskedContext(workInProgress, unmaskedContext);

  var nextChildren = void 0;
  prepareToReadContext(workInProgress, renderExpirationTime);
  {
    ReactCurrentOwner$3.current = workInProgress;
    setCurrentPhase('render');
    nextChildren = renderWithHooks(current$$1, workInProgress, Component, nextProps, context, renderExpirationTime);
    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
      // Only double-render components with Hooks
      if (workInProgress.memoizedState !== null) {
        nextChildren = renderWithHooks(current$$1, workInProgress, Component, nextProps, context, renderExpirationTime);
      }
    }
    setCurrentPhase(null);
  }

  if (current$$1 !== null && !didReceiveUpdate) {
    bailoutHooks(current$$1, workInProgress, renderExpirationTime);
    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
  }

  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;
  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function updateClassComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {
  {
    if (workInProgress.type !== workInProgress.elementType) {
      // Lazy component props can't be validated in createElement
      // because they're only guaranteed to be resolved here.
      var innerPropTypes = Component.propTypes;
      if (innerPropTypes) {
        checkPropTypes(innerPropTypes, nextProps, // Resolved props
        'prop', getComponentName(Component), getCurrentFiberStackInDev);
      }
    }
  }

  // Push context providers early to prevent context stack mismatches.
  // During mounting we don't know the child context yet as the instance doesn't exist.
  // We will invalidate the child context in finishClassComponent() right after rendering.
  var hasContext = void 0;
  if (isContextProvider(Component)) {
    hasContext = true;
    pushContextProvider(workInProgress);
  } else {
    hasContext = false;
  }
  prepareToReadContext(workInProgress, renderExpirationTime);

  var instance = workInProgress.stateNode;
  var shouldUpdate = void 0;
  if (instance === null) {
    if (current$$1 !== null) {
      // An class component without an instance only mounts if it suspended
      // inside a non- concurrent tree, in an inconsistent state. We want to
      // tree it like a new mount, even though an empty version of it already
      // committed. Disconnect the alternate pointers.
      current$$1.alternate = null;
      workInProgress.alternate = null;
      // Since this is conceptually a new fiber, schedule a Placement effect
      workInProgress.effectTag |= Placement;
    }
    // In the initial pass we might need to construct the instance.
    constructClassInstance(workInProgress, Component, nextProps, renderExpirationTime);
    mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);
    shouldUpdate = true;
  } else if (current$$1 === null) {
    // In a resume, we'll already have an instance we can reuse.
    shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);
  } else {
    shouldUpdate = updateClassInstance(current$$1, workInProgress, Component, nextProps, renderExpirationTime);
  }
  var nextUnitOfWork = finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime);
  {
    var inst = workInProgress.stateNode;
    if (inst.props !== nextProps) {
      !didWarnAboutReassigningProps ? warning$1(false, 'It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component') : void 0;
      didWarnAboutReassigningProps = true;
    }
  }
  return nextUnitOfWork;
}

function finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime) {
  // Refs should update even if shouldComponentUpdate returns false
  markRef(current$$1, workInProgress);

  var didCaptureError = (workInProgress.effectTag & DidCapture) !== NoEffect;

  if (!shouldUpdate && !didCaptureError) {
    // Context providers should defer to sCU for rendering
    if (hasContext) {
      invalidateContextProvider(workInProgress, Component, false);
    }

    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
  }

  var instance = workInProgress.stateNode;

  // Rerender
  ReactCurrentOwner$3.current = workInProgress;
  var nextChildren = void 0;
  if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {
    // If we captured an error, but getDerivedStateFrom catch is not defined,
    // unmount all the children. componentDidCatch will schedule an update to
    // re-render a fallback. This is temporary until we migrate everyone to
    // the new API.
    // TODO: Warn in a future release.
    nextChildren = null;

    if (enableProfilerTimer) {
      stopProfilerTimerIfRunning(workInProgress);
    }
  } else {
    {
      setCurrentPhase('render');
      nextChildren = instance.render();
      if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
        instance.render();
      }
      setCurrentPhase(null);
    }
  }

  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;
  if (current$$1 !== null && didCaptureError) {
    // If we're recovering from an error, reconcile without reusing any of
    // the existing children. Conceptually, the normal children and the children
    // that are shown on error are two different sets, so we shouldn't reuse
    // normal children even if their identities match.
    forceUnmountCurrentAndReconcile(current$$1, workInProgress, nextChildren, renderExpirationTime);
  } else {
    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  }

  // Memoize state using the values we just used to render.
  // TODO: Restructure so we never read values from the instance.
  workInProgress.memoizedState = instance.state;

  // The context might have changed so we need to recalculate it.
  if (hasContext) {
    invalidateContextProvider(workInProgress, Component, true);
  }

  return workInProgress.child;
}

function pushHostRootContext(workInProgress) {
  var root = workInProgress.stateNode;
  if (root.pendingContext) {
    pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);
  } else if (root.context) {
    // Should always be set
    pushTopLevelContextObject(workInProgress, root.context, false);
  }
  pushHostContainer(workInProgress, root.containerInfo);
}

function updateHostRoot(current$$1, workInProgress, renderExpirationTime) {
  pushHostRootContext(workInProgress);
  var updateQueue = workInProgress.updateQueue;
  !(updateQueue !== null) ? invariant(false, 'If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  var nextProps = workInProgress.pendingProps;
  var prevState = workInProgress.memoizedState;
  var prevChildren = prevState !== null ? prevState.element : null;
  processUpdateQueue(workInProgress, updateQueue, nextProps, null, renderExpirationTime);
  var nextState = workInProgress.memoizedState;
  // Caution: React DevTools currently depends on this property
  // being called "element".
  var nextChildren = nextState.element;
  if (nextChildren === prevChildren) {
    // If the state is the same as before, that's a bailout because we had
    // no work that expires at this time.
    resetHydrationState();
    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
  }
  var root = workInProgress.stateNode;
  if ((current$$1 === null || current$$1.child === null) && root.hydrate && enterHydrationState(workInProgress)) {
    // If we don't have any current children this might be the first pass.
    // We always try to hydrate. If this isn't a hydration pass there won't
    // be any children to hydrate which is effectively the same thing as
    // not hydrating.

    // This is a bit of a hack. We track the host root as a placement to
    // know that we're currently in a mounting state. That way isMounted
    // works as expected. We must reset this before committing.
    // TODO: Delete this when we delete isMounted and findDOMNode.
    workInProgress.effectTag |= Placement;

    // Ensure that children mount into this root without tracking
    // side-effects. This ensures that we don't store Placement effects on
    // nodes that will be hydrated.
    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
  } else {
    // Otherwise reset hydration state in case we aborted and resumed another
    // root.
    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
    resetHydrationState();
  }
  return workInProgress.child;
}

function updateHostComponent(current$$1, workInProgress, renderExpirationTime) {
  pushHostContext(workInProgress);

  if (current$$1 === null) {
    tryToClaimNextHydratableInstance(workInProgress);
  }

  var type = workInProgress.type;
  var nextProps = workInProgress.pendingProps;
  var prevProps = current$$1 !== null ? current$$1.memoizedProps : null;

  var nextChildren = nextProps.children;
  var isDirectTextChild = shouldSetTextContent(type, nextProps);

  if (isDirectTextChild) {
    // We special case a direct text child of a host node. This is a common
    // case. We won't handle it as a reified child. We will instead handle
    // this in the host environment that also have access to this prop. That
    // avoids allocating another HostText fiber and traversing it.
    nextChildren = null;
  } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {
    // If we're switching from a direct text child to a normal child, or to
    // empty, we need to schedule the text content to be reset.
    workInProgress.effectTag |= ContentReset;
  }

  markRef(current$$1, workInProgress);

  // Check the host config to see if the children are offscreen/hidden.
  if (renderExpirationTime !== Never && workInProgress.mode & ConcurrentMode && shouldDeprioritizeSubtree(type, nextProps)) {
    // Schedule this fiber to re-render at offscreen priority. Then bailout.
    workInProgress.expirationTime = workInProgress.childExpirationTime = Never;
    return null;
  }

  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  return workInProgress.child;
}

function updateHostText(current$$1, workInProgress) {
  if (current$$1 === null) {
    tryToClaimNextHydratableInstance(workInProgress);
  }
  // Nothing to do here. This is terminal. We'll do the completion step
  // immediately after.
  return null;
}

function mountLazyComponent(_current, workInProgress, elementType, updateExpirationTime, renderExpirationTime) {
  if (_current !== null) {
    // An lazy component only mounts if it suspended inside a non-
    // concurrent tree, in an inconsistent state. We want to treat it like
    // a new mount, even though an empty version of it already committed.
    // Disconnect the alternate pointers.
    _current.alternate = null;
    workInProgress.alternate = null;
    // Since this is conceptually a new fiber, schedule a Placement effect
    workInProgress.effectTag |= Placement;
  }

  var props = workInProgress.pendingProps;
  // We can't start a User Timing measurement with correct label yet.
  // Cancel and resume right after we know the tag.
  cancelWorkTimer(workInProgress);
  var Component = readLazyComponentType(elementType);
  // Store the unwrapped component in the type.
  workInProgress.type = Component;
  var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);
  startWorkTimer(workInProgress);
  var resolvedProps = resolveDefaultProps(Component, props);
  var child = void 0;
  switch (resolvedTag) {
    case FunctionComponent:
      {
        {
          validateFunctionComponentInDev(workInProgress, Component);
        }
        child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);
        break;
      }
    case ClassComponent:
      {
        child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);
        break;
      }
    case ForwardRef:
      {
        child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderExpirationTime);
        break;
      }
    case MemoComponent:
      {
        {
          if (workInProgress.type !== workInProgress.elementType) {
            var outerPropTypes = Component.propTypes;
            if (outerPropTypes) {
              checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only
              'prop', getComponentName(Component), getCurrentFiberStackInDev);
            }
          }
        }
        child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too
        updateExpirationTime, renderExpirationTime);
        break;
      }
    default:
      {
        var hint = '';
        {
          if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {
            hint = ' Did you wrap a component in React.lazy() more than once?';
          }
        }
        // This message intentionally doesn't mention ForwardRef or MemoComponent
        // because the fact that it's a separate type of work is an
        // implementation detail.
        invariant(false, 'Element type is invalid. Received a promise that resolves to: %s. Lazy element type must resolve to a class or function.%s', Component, hint);
      }
  }
  return child;
}

function mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderExpirationTime) {
  if (_current !== null) {
    // An incomplete component only mounts if it suspended inside a non-
    // concurrent tree, in an inconsistent state. We want to treat it like
    // a new mount, even though an empty version of it already committed.
    // Disconnect the alternate pointers.
    _current.alternate = null;
    workInProgress.alternate = null;
    // Since this is conceptually a new fiber, schedule a Placement effect
    workInProgress.effectTag |= Placement;
  }

  // Promote the fiber to a class and try rendering again.
  workInProgress.tag = ClassComponent;

  // The rest of this function is a fork of `updateClassComponent`

  // Push context providers early to prevent context stack mismatches.
  // During mounting we don't know the child context yet as the instance doesn't exist.
  // We will invalidate the child context in finishClassComponent() right after rendering.
  var hasContext = void 0;
  if (isContextProvider(Component)) {
    hasContext = true;
    pushContextProvider(workInProgress);
  } else {
    hasContext = false;
  }
  prepareToReadContext(workInProgress, renderExpirationTime);

  constructClassInstance(workInProgress, Component, nextProps, renderExpirationTime);
  mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);

  return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);
}

function mountIndeterminateComponent(_current, workInProgress, Component, renderExpirationTime) {
  if (_current !== null) {
    // An indeterminate component only mounts if it suspended inside a non-
    // concurrent tree, in an inconsistent state. We want to treat it like
    // a new mount, even though an empty version of it already committed.
    // Disconnect the alternate pointers.
    _current.alternate = null;
    workInProgress.alternate = null;
    // Since this is conceptually a new fiber, schedule a Placement effect
    workInProgress.effectTag |= Placement;
  }

  var props = workInProgress.pendingProps;
  var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);
  var context = getMaskedContext(workInProgress, unmaskedContext);

  prepareToReadContext(workInProgress, renderExpirationTime);

  var value = void 0;

  {
    if (Component.prototype && typeof Component.prototype.render === 'function') {
      var componentName = getComponentName(Component) || 'Unknown';

      if (!didWarnAboutBadClass[componentName]) {
        warningWithoutStack$1(false, "The <%s /> component appears to have a render method, but doesn't extend React.Component. " + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);
        didWarnAboutBadClass[componentName] = true;
      }
    }

    if (workInProgress.mode & StrictMode) {
      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);
    }

    ReactCurrentOwner$3.current = workInProgress;
    value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);
  }
  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;

  if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {
    // Proceed under the assumption that this is a class instance
    workInProgress.tag = ClassComponent;

    // Throw out any hooks that were used.
    resetHooks();

    // Push context providers early to prevent context stack mismatches.
    // During mounting we don't know the child context yet as the instance doesn't exist.
    // We will invalidate the child context in finishClassComponent() right after rendering.
    var hasContext = false;
    if (isContextProvider(Component)) {
      hasContext = true;
      pushContextProvider(workInProgress);
    } else {
      hasContext = false;
    }

    workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;

    var getDerivedStateFromProps = Component.getDerivedStateFromProps;
    if (typeof getDerivedStateFromProps === 'function') {
      applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);
    }

    adoptClassInstance(workInProgress, value);
    mountClassInstance(workInProgress, Component, props, renderExpirationTime);
    return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);
  } else {
    // Proceed under the assumption that this is a function component
    workInProgress.tag = FunctionComponent;
    {
      if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
        // Only double-render components with Hooks
        if (workInProgress.memoizedState !== null) {
          value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);
        }
      }
    }
    reconcileChildren(null, workInProgress, value, renderExpirationTime);
    {
      validateFunctionComponentInDev(workInProgress, Component);
    }
    return workInProgress.child;
  }
}

function validateFunctionComponentInDev(workInProgress, Component) {
  if (Component) {
    !!Component.childContextTypes ? warningWithoutStack$1(false, '%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component') : void 0;
  }
  if (workInProgress.ref !== null) {
    var info = '';
    var ownerName = getCurrentFiberOwnerNameInDevOrNull();
    if (ownerName) {
      info += '\n\nCheck the render method of `' + ownerName + '`.';
    }

    var warningKey = ownerName || workInProgress._debugID || '';
    var debugSource = workInProgress._debugSource;
    if (debugSource) {
      warningKey = debugSource.fileName + ':' + debugSource.lineNumber;
    }
    if (!didWarnAboutFunctionRefs[warningKey]) {
      didWarnAboutFunctionRefs[warningKey] = true;
      warning$1(false, 'Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);
    }
  }

  if (typeof Component.getDerivedStateFromProps === 'function') {
    var componentName = getComponentName(Component) || 'Unknown';

    if (!didWarnAboutGetDerivedStateOnFunctionComponent[componentName]) {
      warningWithoutStack$1(false, '%s: Function components do not support getDerivedStateFromProps.', componentName);
      didWarnAboutGetDerivedStateOnFunctionComponent[componentName] = true;
    }
  }

  if (typeof Component.contextType === 'object' && Component.contextType !== null) {
    var _componentName = getComponentName(Component) || 'Unknown';

    if (!didWarnAboutContextTypeOnFunctionComponent[_componentName]) {
      warningWithoutStack$1(false, '%s: Function components do not support contextType.', _componentName);
      didWarnAboutContextTypeOnFunctionComponent[_componentName] = true;
    }
  }
}

function updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime) {
  var mode = workInProgress.mode;
  var nextProps = workInProgress.pendingProps;

  // We should attempt to render the primary children unless this boundary
  // already suspended during this render (`alreadyCaptured` is true).
  var nextState = workInProgress.memoizedState;

  var nextDidTimeout = void 0;
  if ((workInProgress.effectTag & DidCapture) === NoEffect) {
    // This is the first attempt.
    nextState = null;
    nextDidTimeout = false;
  } else {
    // Something in this boundary's subtree already suspended. Switch to
    // rendering the fallback children.
    nextState = {
      timedOutAt: nextState !== null ? nextState.timedOutAt : NoWork
    };
    nextDidTimeout = true;
    workInProgress.effectTag &= ~DidCapture;
  }

  // This next part is a bit confusing. If the children timeout, we switch to
  // showing the fallback children in place of the "primary" children.
  // However, we don't want to delete the primary children because then their
  // state will be lost (both the React state and the host state, e.g.
  // uncontrolled form inputs). Instead we keep them mounted and hide them.
  // Both the fallback children AND the primary children are rendered at the
  // same time. Once the primary children are un-suspended, we can delete
  // the fallback children — don't need to preserve their state.
  //
  // The two sets of children are siblings in the host environment, but
  // semantically, for purposes of reconciliation, they are two separate sets.
  // So we store them using two fragment fibers.
  //
  // However, we want to avoid allocating extra fibers for every placeholder.
  // They're only necessary when the children time out, because that's the
  // only time when both sets are mounted.
  //
  // So, the extra fragment fibers are only used if the children time out.
  // Otherwise, we render the primary children directly. This requires some
  // custom reconciliation logic to preserve the state of the primary
  // children. It's essentially a very basic form of re-parenting.

  // `child` points to the child fiber. In the normal case, this is the first
  // fiber of the primary children set. In the timed-out case, it's a
  // a fragment fiber containing the primary children.
  var child = void 0;
  // `next` points to the next fiber React should render. In the normal case,
  // it's the same as `child`: the first fiber of the primary children set.
  // In the timed-out case, it's a fragment fiber containing the *fallback*
  // children -- we skip over the primary children entirely.
  var next = void 0;
  if (current$$1 === null) {
    if (enableSuspenseServerRenderer) {
      // If we're currently hydrating, try to hydrate this boundary.
      // But only if this has a fallback.
      if (nextProps.fallback !== undefined) {
        tryToClaimNextHydratableInstance(workInProgress);
        // This could've changed the tag if this was a dehydrated suspense component.
        if (workInProgress.tag === DehydratedSuspenseComponent) {
          return updateDehydratedSuspenseComponent(null, workInProgress, renderExpirationTime);
        }
      }
    }

    // This is the initial mount. This branch is pretty simple because there's
    // no previous state that needs to be preserved.
    if (nextDidTimeout) {
      // Mount separate fragments for primary and fallback children.
      var nextFallbackChildren = nextProps.fallback;
      var primaryChildFragment = createFiberFromFragment(null, mode, NoWork, null);

      if ((workInProgress.mode & ConcurrentMode) === NoContext) {
        // Outside of concurrent mode, we commit the effects from the
        var progressedState = workInProgress.memoizedState;
        var progressedPrimaryChild = progressedState !== null ? workInProgress.child.child : workInProgress.child;
        primaryChildFragment.child = progressedPrimaryChild;
      }

      var fallbackChildFragment = createFiberFromFragment(nextFallbackChildren, mode, renderExpirationTime, null);
      primaryChildFragment.sibling = fallbackChildFragment;
      child = primaryChildFragment;
      // Skip the primary children, and continue working on the
      // fallback children.
      next = fallbackChildFragment;
      child.return = next.return = workInProgress;
    } else {
      // Mount the primary children without an intermediate fragment fiber.
      var nextPrimaryChildren = nextProps.children;
      child = next = mountChildFibers(workInProgress, null, nextPrimaryChildren, renderExpirationTime);
    }
  } else {
    // This is an update. This branch is more complicated because we need to
    // ensure the state of the primary children is preserved.
    var prevState = current$$1.memoizedState;
    var prevDidTimeout = prevState !== null;
    if (prevDidTimeout) {
      // The current tree already timed out. That means each child set is
      var currentPrimaryChildFragment = current$$1.child;
      var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;
      if (nextDidTimeout) {
        // Still timed out. Reuse the current primary children by cloning
        // its fragment. We're going to skip over these entirely.
        var _nextFallbackChildren = nextProps.fallback;
        var _primaryChildFragment = createWorkInProgress(currentPrimaryChildFragment, currentPrimaryChildFragment.pendingProps, NoWork);

        if ((workInProgress.mode & ConcurrentMode) === NoContext) {
          // Outside of concurrent mode, we commit the effects from the
          var _progressedState = workInProgress.memoizedState;
          var _progressedPrimaryChild = _progressedState !== null ? workInProgress.child.child : workInProgress.child;
          if (_progressedPrimaryChild !== currentPrimaryChildFragment.child) {
            _primaryChildFragment.child = _progressedPrimaryChild;
          }
        }

        // Because primaryChildFragment is a new fiber that we're inserting as the
        // parent of a new tree, we need to set its treeBaseDuration.
        if (enableProfilerTimer && workInProgress.mode & ProfileMode) {
          // treeBaseDuration is the sum of all the child tree base durations.
          var treeBaseDuration = 0;
          var hiddenChild = _primaryChildFragment.child;
          while (hiddenChild !== null) {
            treeBaseDuration += hiddenChild.treeBaseDuration;
            hiddenChild = hiddenChild.sibling;
          }
          _primaryChildFragment.treeBaseDuration = treeBaseDuration;
        }

        // Clone the fallback child fragment, too. These we'll continue
        // working on.
        var _fallbackChildFragment = _primaryChildFragment.sibling = createWorkInProgress(currentFallbackChildFragment, _nextFallbackChildren, currentFallbackChildFragment.expirationTime);
        child = _primaryChildFragment;
        _primaryChildFragment.childExpirationTime = NoWork;
        // Skip the primary children, and continue working on the
        // fallback children.
        next = _fallbackChildFragment;
        child.return = next.return = workInProgress;
      } else {
        // No longer suspended. Switch back to showing the primary children,
        // and remove the intermediate fragment fiber.
        var _nextPrimaryChildren = nextProps.children;
        var currentPrimaryChild = currentPrimaryChildFragment.child;
        var primaryChild = reconcileChildFibers(workInProgress, currentPrimaryChild, _nextPrimaryChildren, renderExpirationTime);

        // If this render doesn't suspend, we need to delete the fallback
        // children. Wait until the complete phase, after we've confirmed the
        // fallback is no longer needed.
        // TODO: Would it be better to store the fallback fragment on
        // the stateNode?

        // Continue rendering the children, like we normally do.
        child = next = primaryChild;
      }
    } else {
      // The current tree has not already timed out. That means the primary
      // children are not wrapped in a fragment fiber.
      var _currentPrimaryChild = current$$1.child;
      if (nextDidTimeout) {
        // Timed out. Wrap the children in a fragment fiber to keep them
        // separate from the fallback children.
        var _nextFallbackChildren2 = nextProps.fallback;
        var _primaryChildFragment2 = createFiberFromFragment(
        // It shouldn't matter what the pending props are because we aren't
        // going to render this fragment.
        null, mode, NoWork, null);
        _primaryChildFragment2.child = _currentPrimaryChild;

        // Even though we're creating a new fiber, there are no new children,
        // because we're reusing an already mounted tree. So we don't need to
        // schedule a placement.
        // primaryChildFragment.effectTag |= Placement;

        if ((workInProgress.mode & ConcurrentMode) === NoContext) {
          // Outside of concurrent mode, we commit the effects from the
          var _progressedState2 = workInProgress.memoizedState;
          var _progressedPrimaryChild2 = _progressedState2 !== null ? workInProgress.child.child : workInProgress.child;
          _primaryChildFragment2.child = _progressedPrimaryChild2;
        }

        // Because primaryChildFragment is a new fiber that we're inserting as the
        // parent of a new tree, we need to set its treeBaseDuration.
        if (enableProfilerTimer && workInProgress.mode & ProfileMode) {
          // treeBaseDuration is the sum of all the child tree base durations.
          var _treeBaseDuration = 0;
          var _hiddenChild = _primaryChildFragment2.child;
          while (_hiddenChild !== null) {
            _treeBaseDuration += _hiddenChild.treeBaseDuration;
            _hiddenChild = _hiddenChild.sibling;
          }
          _primaryChildFragment2.treeBaseDuration = _treeBaseDuration;
        }

        // Create a fragment from the fallback children, too.
        var _fallbackChildFragment2 = _primaryChildFragment2.sibling = createFiberFromFragment(_nextFallbackChildren2, mode, renderExpirationTime, null);
        _fallbackChildFragment2.effectTag |= Placement;
        child = _primaryChildFragment2;
        _primaryChildFragment2.childExpirationTime = NoWork;
        // Skip the primary children, and continue working on the
        // fallback children.
        next = _fallbackChildFragment2;
        child.return = next.return = workInProgress;
      } else {
        // Still haven't timed out.  Continue rendering the children, like we
        // normally do.
        var _nextPrimaryChildren2 = nextProps.children;
        next = child = reconcileChildFibers(workInProgress, _currentPrimaryChild, _nextPrimaryChildren2, renderExpirationTime);
      }
    }
    workInProgress.stateNode = current$$1.stateNode;
  }

  workInProgress.memoizedState = nextState;
  workInProgress.child = child;
  return next;
}

function updateDehydratedSuspenseComponent(current$$1, workInProgress, renderExpirationTime) {
  if (current$$1 === null) {
    // During the first pass, we'll bail out and not drill into the children.
    // Instead, we'll leave the content in place and try to hydrate it later.
    workInProgress.expirationTime = Never;
    return null;
  }
  // We use childExpirationTime to indicate that a child might depend on context, so if
  // any context has changed, we need to treat is as if the input might have changed.
  var hasContextChanged$$1 = current$$1.childExpirationTime >= renderExpirationTime;
  if (didReceiveUpdate || hasContextChanged$$1) {
    // This boundary has changed since the first render. This means that we are now unable to
    // hydrate it. We might still be able to hydrate it using an earlier expiration time but
    // during this render we can't. Instead, we're going to delete the whole subtree and
    // instead inject a new real Suspense boundary to take its place, which may render content
    // or fallback. The real Suspense boundary will suspend for a while so we have some time
    // to ensure it can produce real content, but all state and pending events will be lost.

    // Detach from the current dehydrated boundary.
    current$$1.alternate = null;
    workInProgress.alternate = null;

    // Insert a deletion in the effect list.
    var returnFiber = workInProgress.return;
    !(returnFiber !== null) ? invariant(false, 'Suspense boundaries are never on the root. This is probably a bug in React.') : void 0;
    var last = returnFiber.lastEffect;
    if (last !== null) {
      last.nextEffect = current$$1;
      returnFiber.lastEffect = current$$1;
    } else {
      returnFiber.firstEffect = returnFiber.lastEffect = current$$1;
    }
    current$$1.nextEffect = null;
    current$$1.effectTag = Deletion;

    // Upgrade this work in progress to a real Suspense component.
    workInProgress.tag = SuspenseComponent;
    workInProgress.stateNode = null;
    workInProgress.memoizedState = null;
    // This is now an insertion.
    workInProgress.effectTag |= Placement;
    // Retry as a real Suspense component.
    return updateSuspenseComponent(null, workInProgress, renderExpirationTime);
  }
  if ((workInProgress.effectTag & DidCapture) === NoEffect) {
    // This is the first attempt.
    reenterHydrationStateFromDehydratedSuspenseInstance(workInProgress);
    var nextProps = workInProgress.pendingProps;
    var nextChildren = nextProps.children;
    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
    return workInProgress.child;
  } else {
    // Something suspended. Leave the existing children in place.
    // TODO: In non-concurrent mode, should we commit the nodes we have hydrated so far?
    workInProgress.child = null;
    return null;
  }
}

function updatePortalComponent(current$$1, workInProgress, renderExpirationTime) {
  pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
  var nextChildren = workInProgress.pendingProps;
  if (current$$1 === null) {
    // Portals are special because we don't append the children during mount
    // but at commit. Therefore we need to track insertions which the normal
    // flow doesn't do during mount. This doesn't happen at the root because
    // the root always starts with a "current" with a null child.
    // TODO: Consider unifying this with how the root works.
    workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
  } else {
    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);
  }
  return workInProgress.child;
}

function updateContextProvider(current$$1, workInProgress, renderExpirationTime) {
  var providerType = workInProgress.type;
  var context = providerType._context;

  var newProps = workInProgress.pendingProps;
  var oldProps = workInProgress.memoizedProps;

  var newValue = newProps.value;

  {
    var providerPropTypes = workInProgress.type.propTypes;

    if (providerPropTypes) {
      checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider', getCurrentFiberStackInDev);
    }
  }

  pushProvider(workInProgress, newValue);

  if (oldProps !== null) {
    var oldValue = oldProps.value;
    var changedBits = calculateChangedBits(context, newValue, oldValue);
    if (changedBits === 0) {
      // No change. Bailout early if children are the same.
      if (oldProps.children === newProps.children && !hasContextChanged()) {
        return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
      }
    } else {
      // The context value changed. Search for matching consumers and schedule
      // them to update.
      propagateContextChange(workInProgress, context, changedBits, renderExpirationTime);
    }
  }

  var newChildren = newProps.children;
  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);
  return workInProgress.child;
}

var hasWarnedAboutUsingContextAsConsumer = false;

function updateContextConsumer(current$$1, workInProgress, renderExpirationTime) {
  var context = workInProgress.type;
  // The logic below for Context differs depending on PROD or DEV mode. In
  // DEV mode, we create a separate object for Context.Consumer that acts
  // like a proxy to Context. This proxy object adds unnecessary code in PROD
  // so we use the old behaviour (Context.Consumer references Context) to
  // reduce size and overhead. The separate object references context via
  // a property called "_context", which also gives us the ability to check
  // in DEV mode if this property exists or not and warn if it does not.
  {
    if (context._context === undefined) {
      // This may be because it's a Context (rather than a Consumer).
      // Or it may be because it's older React where they're the same thing.
      // We only want to warn if we're sure it's a new React.
      if (context !== context.Consumer) {
        if (!hasWarnedAboutUsingContextAsConsumer) {
          hasWarnedAboutUsingContextAsConsumer = true;
          warning$1(false, 'Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');
        }
      }
    } else {
      context = context._context;
    }
  }
  var newProps = workInProgress.pendingProps;
  var render = newProps.children;

  {
    !(typeof render === 'function') ? warningWithoutStack$1(false, 'A context consumer was rendered with multiple children, or a child ' + "that isn't a function. A context consumer expects a single child " + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.') : void 0;
  }

  prepareToReadContext(workInProgress, renderExpirationTime);
  var newValue = readContext(context, newProps.unstable_observedBits);
  var newChildren = void 0;
  {
    ReactCurrentOwner$3.current = workInProgress;
    setCurrentPhase('render');
    newChildren = render(newValue);
    setCurrentPhase(null);
  }

  // React DevTools reads this flag.
  workInProgress.effectTag |= PerformedWork;
  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);
  return workInProgress.child;
}

function markWorkInProgressReceivedUpdate() {
  didReceiveUpdate = true;
}

function bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime) {
  cancelWorkTimer(workInProgress);

  if (current$$1 !== null) {
    // Reuse previous context list
    workInProgress.contextDependencies = current$$1.contextDependencies;
  }

  if (enableProfilerTimer) {
    // Don't update "base" render times for bailouts.
    stopProfilerTimerIfRunning(workInProgress);
  }

  // Check if the children have any pending work.
  var childExpirationTime = workInProgress.childExpirationTime;
  if (childExpirationTime < renderExpirationTime) {
    // The children don't have any work either. We can skip them.
    // TODO: Once we add back resuming, we should check if the children are
    // a work-in-progress set. If so, we need to transfer their effects.
    return null;
  } else {
    // This fiber doesn't have work, but its subtree does. Clone the child
    // fibers and continue.
    cloneChildFibers(current$$1, workInProgress);
    return workInProgress.child;
  }
}

function beginWork(current$$1, workInProgress, renderExpirationTime) {
  var updateExpirationTime = workInProgress.expirationTime;

  if (current$$1 !== null) {
    var oldProps = current$$1.memoizedProps;
    var newProps = workInProgress.pendingProps;

    if (oldProps !== newProps || hasContextChanged()) {
      // If props or context changed, mark the fiber as having performed work.
      // This may be unset if the props are determined to be equal later (memo).
      didReceiveUpdate = true;
    } else if (updateExpirationTime < renderExpirationTime) {
      didReceiveUpdate = false;
      // This fiber does not have any pending work. Bailout without entering
      // the begin phase. There's still some bookkeeping we that needs to be done
      // in this optimized path, mostly pushing stuff onto the stack.
      switch (workInProgress.tag) {
        case HostRoot:
          pushHostRootContext(workInProgress);
          resetHydrationState();
          break;
        case HostComponent:
          pushHostContext(workInProgress);
          break;
        case ClassComponent:
          {
            var Component = workInProgress.type;
            if (isContextProvider(Component)) {
              pushContextProvider(workInProgress);
            }
            break;
          }
        case HostPortal:
          pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
          break;
        case ContextProvider:
          {
            var newValue = workInProgress.memoizedProps.value;
            pushProvider(workInProgress, newValue);
            break;
          }
        case Profiler:
          if (enableProfilerTimer) {
            workInProgress.effectTag |= Update;
          }
          break;
        case SuspenseComponent:
          {
            var state = workInProgress.memoizedState;
            var didTimeout = state !== null;
            if (didTimeout) {
              // If this boundary is currently timed out, we need to decide
              // whether to retry the primary children, or to skip over it and
              // go straight to the fallback. Check the priority of the primary
              var primaryChildFragment = workInProgress.child;
              var primaryChildExpirationTime = primaryChildFragment.childExpirationTime;
              if (primaryChildExpirationTime !== NoWork && primaryChildExpirationTime >= renderExpirationTime) {
                // The primary children have pending work. Use the normal path
                // to attempt to render the primary children again.
                return updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime);
              } else {
                // The primary children do not have pending work with sufficient
                // priority. Bailout.
                var child = bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
                if (child !== null) {
                  // The fallback children have pending work. Skip over the
                  // primary children and work on the fallback.
                  return child.sibling;
                } else {
                  return null;
                }
              }
            }
            break;
          }
        case DehydratedSuspenseComponent:
          {
            if (enableSuspenseServerRenderer) {
              // We know that this component will suspend again because if it has
              // been unsuspended it has committed as a regular Suspense component.
              // If it needs to be retried, it should have work scheduled on it.
              workInProgress.effectTag |= DidCapture;
              break;
            }
          }
      }
      return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);
    }
  } else {
    didReceiveUpdate = false;
  }

  // Before entering the begin phase, clear the expiration time.
  workInProgress.expirationTime = NoWork;

  switch (workInProgress.tag) {
    case IndeterminateComponent:
      {
        var elementType = workInProgress.elementType;
        return mountIndeterminateComponent(current$$1, workInProgress, elementType, renderExpirationTime);
      }
    case LazyComponent:
      {
        var _elementType = workInProgress.elementType;
        return mountLazyComponent(current$$1, workInProgress, _elementType, updateExpirationTime, renderExpirationTime);
      }
    case FunctionComponent:
      {
        var _Component = workInProgress.type;
        var unresolvedProps = workInProgress.pendingProps;
        var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);
        return updateFunctionComponent(current$$1, workInProgress, _Component, resolvedProps, renderExpirationTime);
      }
    case ClassComponent:
      {
        var _Component2 = workInProgress.type;
        var _unresolvedProps = workInProgress.pendingProps;
        var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);
        return updateClassComponent(current$$1, workInProgress, _Component2, _resolvedProps, renderExpirationTime);
      }
    case HostRoot:
      return updateHostRoot(current$$1, workInProgress, renderExpirationTime);
    case HostComponent:
      return updateHostComponent(current$$1, workInProgress, renderExpirationTime);
    case HostText:
      return updateHostText(current$$1, workInProgress);
    case SuspenseComponent:
      return updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime);
    case HostPortal:
      return updatePortalComponent(current$$1, workInProgress, renderExpirationTime);
    case ForwardRef:
      {
        var type = workInProgress.type;
        var _unresolvedProps2 = workInProgress.pendingProps;
        var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
        return updateForwardRef(current$$1, workInProgress, type, _resolvedProps2, renderExpirationTime);
      }
    case Fragment:
      return updateFragment(current$$1, workInProgress, renderExpirationTime);
    case Mode:
      return updateMode(current$$1, workInProgress, renderExpirationTime);
    case Profiler:
      return updateProfiler(current$$1, workInProgress, renderExpirationTime);
    case ContextProvider:
      return updateContextProvider(current$$1, workInProgress, renderExpirationTime);
    case ContextConsumer:
      return updateContextConsumer(current$$1, workInProgress, renderExpirationTime);
    case MemoComponent:
      {
        var _type2 = workInProgress.type;
        var _unresolvedProps3 = workInProgress.pendingProps;
        // Resolve outer props first, then resolve inner props.
        var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);
        {
          if (workInProgress.type !== workInProgress.elementType) {
            var outerPropTypes = _type2.propTypes;
            if (outerPropTypes) {
              checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only
              'prop', getComponentName(_type2), getCurrentFiberStackInDev);
            }
          }
        }
        _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);
        return updateMemoComponent(current$$1, workInProgress, _type2, _resolvedProps3, updateExpirationTime, renderExpirationTime);
      }
    case SimpleMemoComponent:
      {
        return updateSimpleMemoComponent(current$$1, workInProgress, workInProgress.type, workInProgress.pendingProps, updateExpirationTime, renderExpirationTime);
      }
    case IncompleteClassComponent:
      {
        var _Component3 = workInProgress.type;
        var _unresolvedProps4 = workInProgress.pendingProps;
        var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);
        return mountIncompleteClassComponent(current$$1, workInProgress, _Component3, _resolvedProps4, renderExpirationTime);
      }
    case DehydratedSuspenseComponent:
      {
        if (enableSuspenseServerRenderer) {
          return updateDehydratedSuspenseComponent(current$$1, workInProgress, renderExpirationTime);
        }
        break;
      }
  }
  invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');
}

var valueCursor = createCursor(null);

var rendererSigil = void 0;
{
  // Use this to detect multiple renderers using the same context
  rendererSigil = {};
}

var currentlyRenderingFiber = null;
var lastContextDependency = null;
var lastContextWithAllBitsObserved = null;

var isDisallowedContextReadInDEV = false;

function resetContextDependences() {
  // This is called right before React yields execution, to ensure `readContext`
  // cannot be called outside the render phase.
  currentlyRenderingFiber = null;
  lastContextDependency = null;
  lastContextWithAllBitsObserved = null;
  {
    isDisallowedContextReadInDEV = false;
  }
}

function enterDisallowedContextReadInDEV() {
  {
    isDisallowedContextReadInDEV = true;
  }
}

function exitDisallowedContextReadInDEV() {
  {
    isDisallowedContextReadInDEV = false;
  }
}

function pushProvider(providerFiber, nextValue) {
  var context = providerFiber.type._context;

  if (isPrimaryRenderer) {
    push(valueCursor, context._currentValue, providerFiber);

    context._currentValue = nextValue;
    {
      !(context._currentRenderer === undefined || context._currentRenderer === null || context._currentRenderer === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;
      context._currentRenderer = rendererSigil;
    }
  } else {
    push(valueCursor, context._currentValue2, providerFiber);

    context._currentValue2 = nextValue;
    {
      !(context._currentRenderer2 === undefined || context._currentRenderer2 === null || context._currentRenderer2 === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;
      context._currentRenderer2 = rendererSigil;
    }
  }
}

function popProvider(providerFiber) {
  var currentValue = valueCursor.current;

  pop(valueCursor, providerFiber);

  var context = providerFiber.type._context;
  if (isPrimaryRenderer) {
    context._currentValue = currentValue;
  } else {
    context._currentValue2 = currentValue;
  }
}

function calculateChangedBits(context, newValue, oldValue) {
  if (is(oldValue, newValue)) {
    // No change
    return 0;
  } else {
    var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : maxSigned31BitInt;

    {
      !((changedBits & maxSigned31BitInt) === changedBits) ? warning$1(false, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits) : void 0;
    }
    return changedBits | 0;
  }
}

function scheduleWorkOnParentPath(parent, renderExpirationTime) {
  // Update the child expiration time of all the ancestors, including
  // the alternates.
  var node = parent;
  while (node !== null) {
    var alternate = node.alternate;
    if (node.childExpirationTime < renderExpirationTime) {
      node.childExpirationTime = renderExpirationTime;
      if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {
        alternate.childExpirationTime = renderExpirationTime;
      }
    } else if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {
      alternate.childExpirationTime = renderExpirationTime;
    } else {
      // Neither alternate was updated, which means the rest of the
      // ancestor path already has sufficient priority.
      break;
    }
    node = node.return;
  }
}

function propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) {
  var fiber = workInProgress.child;
  if (fiber !== null) {
    // Set the return pointer of the child to the work-in-progress fiber.
    fiber.return = workInProgress;
  }
  while (fiber !== null) {
    var nextFiber = void 0;

    // Visit this fiber.
    var list = fiber.contextDependencies;
    if (list !== null) {
      nextFiber = fiber.child;

      var dependency = list.first;
      while (dependency !== null) {
        // Check if the context matches.
        if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {
          // Match! Schedule an update on this fiber.

          if (fiber.tag === ClassComponent) {
            // Schedule a force update on the work-in-progress.
            var update = createUpdate(renderExpirationTime);
            update.tag = ForceUpdate;
            // TODO: Because we don't have a work-in-progress, this will add the
            // update to the current fiber, too, which means it will persist even if
            // this render is thrown away. Since it's a race condition, not sure it's
            // worth fixing.
            enqueueUpdate(fiber, update);
          }

          if (fiber.expirationTime < renderExpirationTime) {
            fiber.expirationTime = renderExpirationTime;
          }
          var alternate = fiber.alternate;
          if (alternate !== null && alternate.expirationTime < renderExpirationTime) {
            alternate.expirationTime = renderExpirationTime;
          }

          scheduleWorkOnParentPath(fiber.return, renderExpirationTime);

          // Mark the expiration time on the list, too.
          if (list.expirationTime < renderExpirationTime) {
            list.expirationTime = renderExpirationTime;
          }

          // Since we already found a match, we can stop traversing the
          // dependency list.
          break;
        }
        dependency = dependency.next;
      }
    } else if (fiber.tag === ContextProvider) {
      // Don't scan deeper if this is a matching provider
      nextFiber = fiber.type === workInProgress.type ? null : fiber.child;
    } else if (enableSuspenseServerRenderer && fiber.tag === DehydratedSuspenseComponent) {
      // If a dehydrated suspense component is in this subtree, we don't know
      // if it will have any context consumers in it. The best we can do is
      // mark it as having updates on its children.
      if (fiber.expirationTime < renderExpirationTime) {
        fiber.expirationTime = renderExpirationTime;
      }
      var _alternate = fiber.alternate;
      if (_alternate !== null && _alternate.expirationTime < renderExpirationTime) {
        _alternate.expirationTime = renderExpirationTime;
      }
      // This is intentionally passing this fiber as the parent
      // because we want to schedule this fiber as having work
      // on its children. We'll use the childExpirationTime on
      // this fiber to indicate that a context has changed.
      scheduleWorkOnParentPath(fiber, renderExpirationTime);
      nextFiber = fiber.sibling;
    } else {
      // Traverse down.
      nextFiber = fiber.child;
    }

    if (nextFiber !== null) {
      // Set the return pointer of the child to the work-in-progress fiber.
      nextFiber.return = fiber;
    } else {
      // No child. Traverse to next sibling.
      nextFiber = fiber;
      while (nextFiber !== null) {
        if (nextFiber === workInProgress) {
          // We're back to the root of this subtree. Exit.
          nextFiber = null;
          break;
        }
        var sibling = nextFiber.sibling;
        if (sibling !== null) {
          // Set the return pointer of the sibling to the work-in-progress fiber.
          sibling.return = nextFiber.return;
          nextFiber = sibling;
          break;
        }
        // No more siblings. Traverse up.
        nextFiber = nextFiber.return;
      }
    }
    fiber = nextFiber;
  }
}

function prepareToReadContext(workInProgress, renderExpirationTime) {
  currentlyRenderingFiber = workInProgress;
  lastContextDependency = null;
  lastContextWithAllBitsObserved = null;

  var currentDependencies = workInProgress.contextDependencies;
  if (currentDependencies !== null && currentDependencies.expirationTime >= renderExpirationTime) {
    // Context list has a pending update. Mark that this fiber performed work.
    markWorkInProgressReceivedUpdate();
  }

  // Reset the work-in-progress list
  workInProgress.contextDependencies = null;
}

function readContext(context, observedBits) {
  {
    // This warning would fire if you read context inside a Hook like useMemo.
    // Unlike the class check below, it's not enforced in production for perf.
    !!isDisallowedContextReadInDEV ? warning$1(false, 'Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().') : void 0;
  }

  if (lastContextWithAllBitsObserved === context) {
    // Nothing to do. We already observe everything in this context.
  } else if (observedBits === false || observedBits === 0) {
    // Do not observe any updates.
  } else {
    var resolvedObservedBits = void 0; // Avoid deopting on observable arguments or heterogeneous types.
    if (typeof observedBits !== 'number' || observedBits === maxSigned31BitInt) {
      // Observe all updates.
      lastContextWithAllBitsObserved = context;
      resolvedObservedBits = maxSigned31BitInt;
    } else {
      resolvedObservedBits = observedBits;
    }

    var contextItem = {
      context: context,
      observedBits: resolvedObservedBits,
      next: null
    };

    if (lastContextDependency === null) {
      !(currentlyRenderingFiber !== null) ? invariant(false, 'Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().') : void 0;

      // This is the first dependency for this component. Create a new list.
      lastContextDependency = contextItem;
      currentlyRenderingFiber.contextDependencies = {
        first: contextItem,
        expirationTime: NoWork
      };
    } else {
      // Append a new context item.
      lastContextDependency = lastContextDependency.next = contextItem;
    }
  }
  return isPrimaryRenderer ? context._currentValue : context._currentValue2;
}

// UpdateQueue is a linked list of prioritized updates.
//
// Like fibers, update queues come in pairs: a current queue, which represents
// the visible state of the screen, and a work-in-progress queue, which can be
// mutated and processed asynchronously before it is committed — a form of
// double buffering. If a work-in-progress render is discarded before finishing,
// we create a new work-in-progress by cloning the current queue.
//
// Both queues share a persistent, singly-linked list structure. To schedule an
// update, we append it to the end of both queues. Each queue maintains a
// pointer to first update in the persistent list that hasn't been processed.
// The work-in-progress pointer always has a position equal to or greater than
// the current queue, since we always work on that one. The current queue's
// pointer is only updated during the commit phase, when we swap in the
// work-in-progress.
//
// For example:
//
//   Current pointer:           A - B - C - D - E - F
//   Work-in-progress pointer:              D - E - F
//                                          ^
//                                          The work-in-progress queue has
//                                          processed more updates than current.
//
// The reason we append to both queues is because otherwise we might drop
// updates without ever processing them. For example, if we only add updates to
// the work-in-progress queue, some updates could be lost whenever a work-in
// -progress render restarts by cloning from current. Similarly, if we only add
// updates to the current queue, the updates will be lost whenever an already
// in-progress queue commits and swaps with the current queue. However, by
// adding to both queues, we guarantee that the update will be part of the next
// work-in-progress. (And because the work-in-progress queue becomes the
// current queue once it commits, there's no danger of applying the same
// update twice.)
//
// Prioritization
// --------------
//
// Updates are not sorted by priority, but by insertion; new updates are always
// appended to the end of the list.
//
// The priority is still important, though. When processing the update queue
// during the render phase, only the updates with sufficient priority are
// included in the result. If we skip an update because it has insufficient
// priority, it remains in the queue to be processed later, during a lower
// priority render. Crucially, all updates subsequent to a skipped update also
// remain in the queue *regardless of their priority*. That means high priority
// updates are sometimes processed twice, at two separate priorities. We also
// keep track of a base state, that represents the state before the first
// update in the queue is applied.
//
// For example:
//
//   Given a base state of '', and the following queue of updates
//
//     A1 - B2 - C1 - D2
//
//   where the number indicates the priority, and the update is applied to the
//   previous state by appending a letter, React will process these updates as
//   two separate renders, one per distinct priority level:
//
//   First render, at priority 1:
//     Base state: ''
//     Updates: [A1, C1]
//     Result state: 'AC'
//
//   Second render, at priority 2:
//     Base state: 'A'            <-  The base state does not include C1,
//                                    because B2 was skipped.
//     Updates: [B2, C1, D2]      <-  C1 was rebased on top of B2
//     Result state: 'ABCD'
//
// Because we process updates in insertion order, and rebase high priority
// updates when preceding updates are skipped, the final result is deterministic
// regardless of priority. Intermediate state may vary according to system
// resources, but the final state is always the same.

var UpdateState = 0;
var ReplaceState = 1;
var ForceUpdate = 2;
var CaptureUpdate = 3;

// Global state that is reset at the beginning of calling `processUpdateQueue`.
// It should only be read right after calling `processUpdateQueue`, via
// `checkHasForceUpdateAfterProcessing`.
var hasForceUpdate = false;

var didWarnUpdateInsideUpdate = void 0;
var currentlyProcessingQueue = void 0;
var resetCurrentlyProcessingQueue = void 0;
{
  didWarnUpdateInsideUpdate = false;
  currentlyProcessingQueue = null;
  resetCurrentlyProcessingQueue = function () {
    currentlyProcessingQueue = null;
  };
}

function createUpdateQueue(baseState) {
  var queue = {
    baseState: baseState,
    firstUpdate: null,
    lastUpdate: null,
    firstCapturedUpdate: null,
    lastCapturedUpdate: null,
    firstEffect: null,
    lastEffect: null,
    firstCapturedEffect: null,
    lastCapturedEffect: null
  };
  return queue;
}

function cloneUpdateQueue(currentQueue) {
  var queue = {
    baseState: currentQueue.baseState,
    firstUpdate: currentQueue.firstUpdate,
    lastUpdate: currentQueue.lastUpdate,

    // TODO: With resuming, if we bail out and resuse the child tree, we should
    // keep these effects.
    firstCapturedUpdate: null,
    lastCapturedUpdate: null,

    firstEffect: null,
    lastEffect: null,

    firstCapturedEffect: null,
    lastCapturedEffect: null
  };
  return queue;
}

function createUpdate(expirationTime) {
  return {
    expirationTime: expirationTime,

    tag: UpdateState,
    payload: null,
    callback: null,

    next: null,
    nextEffect: null
  };
}

function appendUpdateToQueue(queue, update) {
  // Append the update to the end of the list.
  if (queue.lastUpdate === null) {
    // Queue is empty
    queue.firstUpdate = queue.lastUpdate = update;
  } else {
    queue.lastUpdate.next = update;
    queue.lastUpdate = update;
  }
}

function enqueueUpdate(fiber, update) {
  // Update queues are created lazily.
  var alternate = fiber.alternate;
  var queue1 = void 0;
  var queue2 = void 0;
  if (alternate === null) {
    // There's only one fiber.
    queue1 = fiber.updateQueue;
    queue2 = null;
    if (queue1 === null) {
      queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);
    }
  } else {
    // There are two owners.
    queue1 = fiber.updateQueue;
    queue2 = alternate.updateQueue;
    if (queue1 === null) {
      if (queue2 === null) {
        // Neither fiber has an update queue. Create new ones.
        queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);
        queue2 = alternate.updateQueue = createUpdateQueue(alternate.memoizedState);
      } else {
        // Only one fiber has an update queue. Clone to create a new one.
        queue1 = fiber.updateQueue = cloneUpdateQueue(queue2);
      }
    } else {
      if (queue2 === null) {
        // Only one fiber has an update queue. Clone to create a new one.
        queue2 = alternate.updateQueue = cloneUpdateQueue(queue1);
      } else {
        // Both owners have an update queue.
      }
    }
  }
  if (queue2 === null || queue1 === queue2) {
    // There's only a single queue.
    appendUpdateToQueue(queue1, update);
  } else {
    // There are two queues. We need to append the update to both queues,
    // while accounting for the persistent structure of the list — we don't
    // want the same update to be added multiple times.
    if (queue1.lastUpdate === null || queue2.lastUpdate === null) {
      // One of the queues is not empty. We must add the update to both queues.
      appendUpdateToQueue(queue1, update);
      appendUpdateToQueue(queue2, update);
    } else {
      // Both queues are non-empty. The last update is the same in both lists,
      // because of structural sharing. So, only append to one of the lists.
      appendUpdateToQueue(queue1, update);
      // But we still need to update the `lastUpdate` pointer of queue2.
      queue2.lastUpdate = update;
    }
  }

  {
    if (fiber.tag === ClassComponent && (currentlyProcessingQueue === queue1 || queue2 !== null && currentlyProcessingQueue === queue2) && !didWarnUpdateInsideUpdate) {
      warningWithoutStack$1(false, 'An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');
      didWarnUpdateInsideUpdate = true;
    }
  }
}

function enqueueCapturedUpdate(workInProgress, update) {
  // Captured updates go into a separate list, and only on the work-in-
  // progress queue.
  var workInProgressQueue = workInProgress.updateQueue;
  if (workInProgressQueue === null) {
    workInProgressQueue = workInProgress.updateQueue = createUpdateQueue(workInProgress.memoizedState);
  } else {
    // TODO: I put this here rather than createWorkInProgress so that we don't
    // clone the queue unnecessarily. There's probably a better way to
    // structure this.
    workInProgressQueue = ensureWorkInProgressQueueIsAClone(workInProgress, workInProgressQueue);
  }

  // Append the update to the end of the list.
  if (workInProgressQueue.lastCapturedUpdate === null) {
    // This is the first render phase update
    workInProgressQueue.firstCapturedUpdate = workInProgressQueue.lastCapturedUpdate = update;
  } else {
    workInProgressQueue.lastCapturedUpdate.next = update;
    workInProgressQueue.lastCapturedUpdate = update;
  }
}

function ensureWorkInProgressQueueIsAClone(workInProgress, queue) {
  var current = workInProgress.alternate;
  if (current !== null) {
    // If the work-in-progress queue is equal to the current queue,
    // we need to clone it first.
    if (queue === current.updateQueue) {
      queue = workInProgress.updateQueue = cloneUpdateQueue(queue);
    }
  }
  return queue;
}

function getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {
  switch (update.tag) {
    case ReplaceState:
      {
        var _payload = update.payload;
        if (typeof _payload === 'function') {
          // Updater function
          {
            enterDisallowedContextReadInDEV();
            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
              _payload.call(instance, prevState, nextProps);
            }
          }
          var nextState = _payload.call(instance, prevState, nextProps);
          {
            exitDisallowedContextReadInDEV();
          }
          return nextState;
        }
        // State object
        return _payload;
      }
    case CaptureUpdate:
      {
        workInProgress.effectTag = workInProgress.effectTag & ~ShouldCapture | DidCapture;
      }
    // Intentional fallthrough
    case UpdateState:
      {
        var _payload2 = update.payload;
        var partialState = void 0;
        if (typeof _payload2 === 'function') {
          // Updater function
          {
            enterDisallowedContextReadInDEV();
            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {
              _payload2.call(instance, prevState, nextProps);
            }
          }
          partialState = _payload2.call(instance, prevState, nextProps);
          {
            exitDisallowedContextReadInDEV();
          }
        } else {
          // Partial state object
          partialState = _payload2;
        }
        if (partialState === null || partialState === undefined) {
          // Null and undefined are treated as no-ops.
          return prevState;
        }
        // Merge the partial state and the previous state.
        return _assign({}, prevState, partialState);
      }
    case ForceUpdate:
      {
        hasForceUpdate = true;
        return prevState;
      }
  }
  return prevState;
}

function processUpdateQueue(workInProgress, queue, props, instance, renderExpirationTime) {
  hasForceUpdate = false;

  queue = ensureWorkInProgressQueueIsAClone(workInProgress, queue);

  {
    currentlyProcessingQueue = queue;
  }

  // These values may change as we process the queue.
  var newBaseState = queue.baseState;
  var newFirstUpdate = null;
  var newExpirationTime = NoWork;

  // Iterate through the list of updates to compute the result.
  var update = queue.firstUpdate;
  var resultState = newBaseState;
  while (update !== null) {
    var updateExpirationTime = update.expirationTime;
    if (updateExpirationTime < renderExpirationTime) {
      // This update does not have sufficient priority. Skip it.
      if (newFirstUpdate === null) {
        // This is the first skipped update. It will be the first update in
        // the new list.
        newFirstUpdate = update;
        // Since this is the first update that was skipped, the current result
        // is the new base state.
        newBaseState = resultState;
      }
      // Since this update will remain in the list, update the remaining
      // expiration time.
      if (newExpirationTime < updateExpirationTime) {
        newExpirationTime = updateExpirationTime;
      }
    } else {
      // This update does have sufficient priority. Process it and compute
      // a new result.
      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);
      var _callback = update.callback;
      if (_callback !== null) {
        workInProgress.effectTag |= Callback;
        // Set this to null, in case it was mutated during an aborted render.
        update.nextEffect = null;
        if (queue.lastEffect === null) {
          queue.firstEffect = queue.lastEffect = update;
        } else {
          queue.lastEffect.nextEffect = update;
          queue.lastEffect = update;
        }
      }
    }
    // Continue to the next update.
    update = update.next;
  }

  // Separately, iterate though the list of captured updates.
  var newFirstCapturedUpdate = null;
  update = queue.firstCapturedUpdate;
  while (update !== null) {
    var _updateExpirationTime = update.expirationTime;
    if (_updateExpirationTime < renderExpirationTime) {
      // This update does not have sufficient priority. Skip it.
      if (newFirstCapturedUpdate === null) {
        // This is the first skipped captured update. It will be the first
        // update in the new list.
        newFirstCapturedUpdate = update;
        // If this is the first update that was skipped, the current result is
        // the new base state.
        if (newFirstUpdate === null) {
          newBaseState = resultState;
        }
      }
      // Since this update will remain in the list, update the remaining
      // expiration time.
      if (newExpirationTime < _updateExpirationTime) {
        newExpirationTime = _updateExpirationTime;
      }
    } else {
      // This update does have sufficient priority. Process it and compute
      // a new result.
      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);
      var _callback2 = update.callback;
      if (_callback2 !== null) {
        workInProgress.effectTag |= Callback;
        // Set this to null, in case it was mutated during an aborted render.
        update.nextEffect = null;
        if (queue.lastCapturedEffect === null) {
          queue.firstCapturedEffect = queue.lastCapturedEffect = update;
        } else {
          queue.lastCapturedEffect.nextEffect = update;
          queue.lastCapturedEffect = update;
        }
      }
    }
    update = update.next;
  }

  if (newFirstUpdate === null) {
    queue.lastUpdate = null;
  }
  if (newFirstCapturedUpdate === null) {
    queue.lastCapturedUpdate = null;
  } else {
    workInProgress.effectTag |= Callback;
  }
  if (newFirstUpdate === null && newFirstCapturedUpdate === null) {
    // We processed every update, without skipping. That means the new base
    // state is the same as the result state.
    newBaseState = resultState;
  }

  queue.baseState = newBaseState;
  queue.firstUpdate = newFirstUpdate;
  queue.firstCapturedUpdate = newFirstCapturedUpdate;

  // Set the remaining expiration time to be whatever is remaining in the queue.
  // This should be fine because the only two other things that contribute to
  // expiration time are props and context. We're already in the middle of the
  // begin phase by the time we start processing the queue, so we've already
  // dealt with the props. Context in components that specify
  // shouldComponentUpdate is tricky; but we'll have to account for
  // that regardless.
  workInProgress.expirationTime = newExpirationTime;
  workInProgress.memoizedState = resultState;

  {
    currentlyProcessingQueue = null;
  }
}

function callCallback(callback, context) {
  !(typeof callback === 'function') ? invariant(false, 'Invalid argument passed as callback. Expected a function. Instead received: %s', callback) : void 0;
  callback.call(context);
}

function resetHasForceUpdateBeforeProcessing() {
  hasForceUpdate = false;
}

function checkHasForceUpdateAfterProcessing() {
  return hasForceUpdate;
}

function commitUpdateQueue(finishedWork, finishedQueue, instance, renderExpirationTime) {
  // If the finished render included captured updates, and there are still
  // lower priority updates left over, we need to keep the captured updates
  // in the queue so that they are rebased and not dropped once we process the
  // queue again at the lower priority.
  if (finishedQueue.firstCapturedUpdate !== null) {
    // Join the captured update list to the end of the normal list.
    if (finishedQueue.lastUpdate !== null) {
      finishedQueue.lastUpdate.next = finishedQueue.firstCapturedUpdate;
      finishedQueue.lastUpdate = finishedQueue.lastCapturedUpdate;
    }
    // Clear the list of captured updates.
    finishedQueue.firstCapturedUpdate = finishedQueue.lastCapturedUpdate = null;
  }

  // Commit the effects
  commitUpdateEffects(finishedQueue.firstEffect, instance);
  finishedQueue.firstEffect = finishedQueue.lastEffect = null;

  commitUpdateEffects(finishedQueue.firstCapturedEffect, instance);
  finishedQueue.firstCapturedEffect = finishedQueue.lastCapturedEffect = null;
}

function commitUpdateEffects(effect, instance) {
  while (effect !== null) {
    var _callback3 = effect.callback;
    if (_callback3 !== null) {
      effect.callback = null;
      callCallback(_callback3, instance);
    }
    effect = effect.nextEffect;
  }
}

function createCapturedValue(value, source) {
  // If the value is an error, call this function immediately after it is thrown
  // so the stack is accurate.
  return {
    value: value,
    source: source,
    stack: getStackByFiberInDevAndProd(source)
  };
}

function markUpdate(workInProgress) {
  // Tag the fiber with an update effect. This turns a Placement into
  // a PlacementAndUpdate.
  workInProgress.effectTag |= Update;
}

function markRef$1(workInProgress) {
  workInProgress.effectTag |= Ref;
}

var appendAllChildren = void 0;
var updateHostContainer = void 0;
var updateHostComponent$1 = void 0;
var updateHostText$1 = void 0;
if (supportsMutation) {
  // Mutation mode

  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {
    // We only have the top Fiber that was created but we need recurse down its
    // children to find all the terminal nodes.
    var node = workInProgress.child;
    while (node !== null) {
      if (node.tag === HostComponent || node.tag === HostText) {
        appendInitialChild(parent, node.stateNode);
      } else if (node.tag === HostPortal) {
        // If we have a portal child, then we don't want to traverse
        // down its children. Instead, we'll get insertions from each child in
        // the portal directly.
      } else if (node.child !== null) {
        node.child.return = node;
        node = node.child;
        continue;
      }
      if (node === workInProgress) {
        return;
      }
      while (node.sibling === null) {
        if (node.return === null || node.return === workInProgress) {
          return;
        }
        node = node.return;
      }
      node.sibling.return = node.return;
      node = node.sibling;
    }
  };

  updateHostContainer = function (workInProgress) {
    // Noop
  };
  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {
    // If we have an alternate, that means this is an update and we need to
    // schedule a side-effect to do the updates.
    var oldProps = current.memoizedProps;
    if (oldProps === newProps) {
      // In mutation mode, this is sufficient for a bailout because
      // we won't touch this node even if children changed.
      return;
    }

    // If we get updated because one of our children updated, we don't
    // have newProps so we'll have to reuse them.
    // TODO: Split the update API as separate for the props vs. children.
    // Even better would be if children weren't special cased at all tho.
    var instance = workInProgress.stateNode;
    var currentHostContext = getHostContext();
    // TODO: Experiencing an error where oldProps is null. Suggests a host
    // component is hitting the resume path. Figure out why. Possibly
    // related to `hidden`.
    var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext);
    // TODO: Type this specific to this type of component.
    workInProgress.updateQueue = updatePayload;
    // If the update payload indicates that there is a change or if there
    // is a new ref we mark this as an update. All the work is done in commitWork.
    if (updatePayload) {
      markUpdate(workInProgress);
    }
  };
  updateHostText$1 = function (current, workInProgress, oldText, newText) {
    // If the text differs, mark it as an update. All the work in done in commitWork.
    if (oldText !== newText) {
      markUpdate(workInProgress);
    }
  };
} else if (supportsPersistence) {
  // Persistent host tree mode

  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {
    // We only have the top Fiber that was created but we need recurse down its
    // children to find all the terminal nodes.
    var node = workInProgress.child;
    while (node !== null) {
      // eslint-disable-next-line no-labels
      branches: if (node.tag === HostComponent) {
        var instance = node.stateNode;
        if (needsVisibilityToggle) {
          var props = node.memoizedProps;
          var type = node.type;
          if (isHidden) {
            // This child is inside a timed out tree. Hide it.
            instance = cloneHiddenInstance(instance, type, props, node);
          } else {
            // This child was previously inside a timed out tree. If it was not
            // updated during this render, it may need to be unhidden. Clone
            // again to be sure.
            instance = cloneUnhiddenInstance(instance, type, props, node);
          }
          node.stateNode = instance;
        }
        appendInitialChild(parent, instance);
      } else if (node.tag === HostText) {
        var _instance = node.stateNode;
        if (needsVisibilityToggle) {
          var text = node.memoizedProps;
          var rootContainerInstance = getRootHostContainer();
          var currentHostContext = getHostContext();
          if (isHidden) {
            _instance = createHiddenTextInstance(text, rootContainerInstance, currentHostContext, workInProgress);
          } else {
            _instance = createTextInstance(text, rootContainerInstance, currentHostContext, workInProgress);
          }
          node.stateNode = _instance;
        }
        appendInitialChild(parent, _instance);
      } else if (node.tag === HostPortal) {
        // If we have a portal child, then we don't want to traverse
        // down its children. Instead, we'll get insertions from each child in
        // the portal directly.
      } else if (node.tag === SuspenseComponent) {
        var current = node.alternate;
        if (current !== null) {
          var oldState = current.memoizedState;
          var newState = node.memoizedState;
          var oldIsHidden = oldState !== null;
          var newIsHidden = newState !== null;
          if (oldIsHidden !== newIsHidden) {
            // The placeholder either just timed out or switched back to the normal
            // children after having previously timed out. Toggle the visibility of
            // the direct host children.
            var primaryChildParent = newIsHidden ? node.child : node;
            if (primaryChildParent !== null) {
              appendAllChildren(parent, primaryChildParent, true, newIsHidden);
            }
            // eslint-disable-next-line no-labels
            break branches;
          }
        }
        if (node.child !== null) {
          // Continue traversing like normal
          node.child.return = node;
          node = node.child;
          continue;
        }
      } else if (node.child !== null) {
        node.child.return = node;
        node = node.child;
        continue;
      }
      // $FlowFixMe This is correct but Flow is confused by the labeled break.
      node = node;
      if (node === workInProgress) {
        return;
      }
      while (node.sibling === null) {
        if (node.return === null || node.return === workInProgress) {
          return;
        }
        node = node.return;
      }
      node.sibling.return = node.return;
      node = node.sibling;
    }
  };

  // An unfortunate fork of appendAllChildren because we have two different parent types.
  var appendAllChildrenToContainer = function (containerChildSet, workInProgress, needsVisibilityToggle, isHidden) {
    // We only have the top Fiber that was created but we need recurse down its
    // children to find all the terminal nodes.
    var node = workInProgress.child;
    while (node !== null) {
      // eslint-disable-next-line no-labels
      branches: if (node.tag === HostComponent) {
        var instance = node.stateNode;
        if (needsVisibilityToggle) {
          var props = node.memoizedProps;
          var type = node.type;
          if (isHidden) {
            // This child is inside a timed out tree. Hide it.
            instance = cloneHiddenInstance(instance, type, props, node);
          } else {
            // This child was previously inside a timed out tree. If it was not
            // updated during this render, it may need to be unhidden. Clone
            // again to be sure.
            instance = cloneUnhiddenInstance(instance, type, props, node);
          }
          node.stateNode = instance;
        }
        appendChildToContainerChildSet(containerChildSet, instance);
      } else if (node.tag === HostText) {
        var _instance2 = node.stateNode;
        if (needsVisibilityToggle) {
          var text = node.memoizedProps;
          var rootContainerInstance = getRootHostContainer();
          var currentHostContext = getHostContext();
          if (isHidden) {
            _instance2 = createHiddenTextInstance(text, rootContainerInstance, currentHostContext, workInProgress);
          } else {
            _instance2 = createTextInstance(text, rootContainerInstance, currentHostContext, workInProgress);
          }
          node.stateNode = _instance2;
        }
        appendChildToContainerChildSet(containerChildSet, _instance2);
      } else if (node.tag === HostPortal) {
        // If we have a portal child, then we don't want to traverse
        // down its children. Instead, we'll get insertions from each child in
        // the portal directly.
      } else if (node.tag === SuspenseComponent) {
        var current = node.alternate;
        if (current !== null) {
          var oldState = current.memoizedState;
          var newState = node.memoizedState;
          var oldIsHidden = oldState !== null;
          var newIsHidden = newState !== null;
          if (oldIsHidden !== newIsHidden) {
            // The placeholder either just timed out or switched back to the normal
            // children after having previously timed out. Toggle the visibility of
            // the direct host children.
            var primaryChildParent = newIsHidden ? node.child : node;
            if (primaryChildParent !== null) {
              appendAllChildrenToContainer(containerChildSet, primaryChildParent, true, newIsHidden);
            }
            // eslint-disable-next-line no-labels
            break branches;
          }
        }
        if (node.child !== null) {
          // Continue traversing like normal
          node.child.return = node;
          node = node.child;
          continue;
        }
      } else if (node.child !== null) {
        node.child.return = node;
        node = node.child;
        continue;
      }
      // $FlowFixMe This is correct but Flow is confused by the labeled break.
      node = node;
      if (node === workInProgress) {
        return;
      }
      while (node.sibling === null) {
        if (node.return === null || node.return === workInProgress) {
          return;
        }
        node = node.return;
      }
      node.sibling.return = node.return;
      node = node.sibling;
    }
  };
  updateHostContainer = function (workInProgress) {
    var portalOrRoot = workInProgress.stateNode;
    var childrenUnchanged = workInProgress.firstEffect === null;
    if (childrenUnchanged) {
      // No changes, just reuse the existing instance.
    } else {
      var container = portalOrRoot.containerInfo;
      var newChildSet = createContainerChildSet(container);
      // If children might have changed, we have to add them all to the set.
      appendAllChildrenToContainer(newChildSet, workInProgress, false, false);
      portalOrRoot.pendingChildren = newChildSet;
      // Schedule an update on the container to swap out the container.
      markUpdate(workInProgress);
      finalizeContainerChildren(container, newChildSet);
    }
  };
  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {
    var currentInstance = current.stateNode;
    var oldProps = current.memoizedProps;
    // If there are no effects associated with this node, then none of our children had any updates.
    // This guarantees that we can reuse all of them.
    var childrenUnchanged = workInProgress.firstEffect === null;
    if (childrenUnchanged && oldProps === newProps) {
      // No changes, just reuse the existing instance.
      // Note that this might release a previous clone.
      workInProgress.stateNode = currentInstance;
      return;
    }
    var recyclableInstance = workInProgress.stateNode;
    var currentHostContext = getHostContext();
    var updatePayload = null;
    if (oldProps !== newProps) {
      updatePayload = prepareUpdate(recyclableInstance, type, oldProps, newProps, rootContainerInstance, currentHostContext);
    }
    if (childrenUnchanged && updatePayload === null) {
      // No changes, just reuse the existing instance.
      // Note that this might release a previous clone.
      workInProgress.stateNode = currentInstance;
      return;
    }
    var newInstance = cloneInstance(currentInstance, updatePayload, type, oldProps, newProps, workInProgress, childrenUnchanged, recyclableInstance);
    if (finalizeInitialChildren(newInstance, type, newProps, rootContainerInstance, currentHostContext)) {
      markUpdate(workInProgress);
    }
    workInProgress.stateNode = newInstance;
    if (childrenUnchanged) {
      // If there are no other effects in this tree, we need to flag this node as having one.
      // Even though we're not going to use it for anything.
      // Otherwise parents won't know that there are new children to propagate upwards.
      markUpdate(workInProgress);
    } else {
      // If children might have changed, we have to add them all to the set.
      appendAllChildren(newInstance, workInProgress, false, false);
    }
  };
  updateHostText$1 = function (current, workInProgress, oldText, newText) {
    if (oldText !== newText) {
      // If the text content differs, we'll create a new text instance for it.
      var rootContainerInstance = getRootHostContainer();
      var currentHostContext = getHostContext();
      workInProgress.stateNode = createTextInstance(newText, rootContainerInstance, currentHostContext, workInProgress);
      // We'll have to mark it as having an effect, even though we won't use the effect for anything.
      // This lets the parents know that at least one of their children has changed.
      markUpdate(workInProgress);
    }
  };
} else {
  // No host operations
  updateHostContainer = function (workInProgress) {
    // Noop
  };
  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {
    // Noop
  };
  updateHostText$1 = function (current, workInProgress, oldText, newText) {
    // Noop
  };
}

function completeWork(current, workInProgress, renderExpirationTime) {
  var newProps = workInProgress.pendingProps;

  switch (workInProgress.tag) {
    case IndeterminateComponent:
      break;
    case LazyComponent:
      break;
    case SimpleMemoComponent:
    case FunctionComponent:
      break;
    case ClassComponent:
      {
        var Component = workInProgress.type;
        if (isContextProvider(Component)) {
          popContext(workInProgress);
        }
        break;
      }
    case HostRoot:
      {
        popHostContainer(workInProgress);
        popTopLevelContextObject(workInProgress);
        var fiberRoot = workInProgress.stateNode;
        if (fiberRoot.pendingContext) {
          fiberRoot.context = fiberRoot.pendingContext;
          fiberRoot.pendingContext = null;
        }
        if (current === null || current.child === null) {
          // If we hydrated, pop so that we can delete any remaining children
          // that weren't hydrated.
          popHydrationState(workInProgress);
          // This resets the hacky state to fix isMounted before committing.
          // TODO: Delete this when we delete isMounted and findDOMNode.
          workInProgress.effectTag &= ~Placement;
        }
        updateHostContainer(workInProgress);
        break;
      }
    case HostComponent:
      {
        popHostContext(workInProgress);
        var rootContainerInstance = getRootHostContainer();
        var type = workInProgress.type;
        if (current !== null && workInProgress.stateNode != null) {
          updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);

          if (current.ref !== workInProgress.ref) {
            markRef$1(workInProgress);
          }
        } else {
          if (!newProps) {
            !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;
            // This can happen when we abort work.
            break;
          }

          var currentHostContext = getHostContext();
          // TODO: Move createInstance to beginWork and keep it on a context
          // "stack" as the parent. Then append children as we go in beginWork
          // or completeWork depending on we want to add then top->down or
          // bottom->up. Top->down is faster in IE11.
          var wasHydrated = popHydrationState(workInProgress);
          if (wasHydrated) {
            // TODO: Move this and createInstance step into the beginPhase
            // to consolidate.
            if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {
              // If changes to the hydrated node needs to be applied at the
              // commit-phase we mark this as such.
              markUpdate(workInProgress);
            }
          } else {
            var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);

            appendAllChildren(instance, workInProgress, false, false);

            // Certain renderers require commit-time effects for initial mount.
            // (eg DOM renderer supports auto-focus for certain elements).
            // Make sure such renderers get scheduled for later work.
            if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance, currentHostContext)) {
              markUpdate(workInProgress);
            }
            workInProgress.stateNode = instance;
          }

          if (workInProgress.ref !== null) {
            // If there is a ref on a host node we need to schedule a callback
            markRef$1(workInProgress);
          }
        }
        break;
      }
    case HostText:
      {
        var newText = newProps;
        if (current && workInProgress.stateNode != null) {
          var oldText = current.memoizedProps;
          // If we have an alternate, that means this is an update and we need
          // to schedule a side-effect to do the updates.
          updateHostText$1(current, workInProgress, oldText, newText);
        } else {
          if (typeof newText !== 'string') {
            !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;
            // This can happen when we abort work.
          }
          var _rootContainerInstance = getRootHostContainer();
          var _currentHostContext = getHostContext();
          var _wasHydrated = popHydrationState(workInProgress);
          if (_wasHydrated) {
            if (prepareToHydrateHostTextInstance(workInProgress)) {
              markUpdate(workInProgress);
            }
          } else {
            workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);
          }
        }
        break;
      }
    case ForwardRef:
      break;
    case SuspenseComponent:
      {
        var nextState = workInProgress.memoizedState;
        if ((workInProgress.effectTag & DidCapture) !== NoEffect) {
          // Something suspended. Re-render with the fallback children.
          workInProgress.expirationTime = renderExpirationTime;
          // Do not reset the effect list.
          return workInProgress;
        }

        var nextDidTimeout = nextState !== null;
        var prevDidTimeout = current !== null && current.memoizedState !== null;

        if (current !== null && !nextDidTimeout && prevDidTimeout) {
          // We just switched from the fallback to the normal children. Delete
          // the fallback.
          // TODO: Would it be better to store the fallback fragment on
          var currentFallbackChild = current.child.sibling;
          if (currentFallbackChild !== null) {
            // Deletions go at the beginning of the return fiber's effect list
            var first = workInProgress.firstEffect;
            if (first !== null) {
              workInProgress.firstEffect = currentFallbackChild;
              currentFallbackChild.nextEffect = first;
            } else {
              workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChild;
              currentFallbackChild.nextEffect = null;
            }
            currentFallbackChild.effectTag = Deletion;
          }
        }

        if (nextDidTimeout || prevDidTimeout) {
          // If the children are hidden, or if they were previous hidden, schedule
          // an effect to toggle their visibility. This is also used to attach a
          // retry listener to the promise.
          workInProgress.effectTag |= Update;
        }
        break;
      }
    case Fragment:
      break;
    case Mode:
      break;
    case Profiler:
      break;
    case HostPortal:
      popHostContainer(workInProgress);
      updateHostContainer(workInProgress);
      break;
    case ContextProvider:
      // Pop provider fiber
      popProvider(workInProgress);
      break;
    case ContextConsumer:
      break;
    case MemoComponent:
      break;
    case IncompleteClassComponent:
      {
        // Same as class component case. I put it down here so that the tags are
        // sequential to ensure this switch is compiled to a jump table.
        var _Component = workInProgress.type;
        if (isContextProvider(_Component)) {
          popContext(workInProgress);
        }
        break;
      }
    case DehydratedSuspenseComponent:
      {
        if (enableSuspenseServerRenderer) {
          if (current === null) {
            var _wasHydrated2 = popHydrationState(workInProgress);
            !_wasHydrated2 ? invariant(false, 'A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.') : void 0;
            skipPastDehydratedSuspenseInstance(workInProgress);
          } else if ((workInProgress.effectTag & DidCapture) === NoEffect) {
            // This boundary did not suspend so it's now hydrated.
            // To handle any future suspense cases, we're going to now upgrade it
            // to a Suspense component. We detach it from the existing current fiber.
            current.alternate = null;
            workInProgress.alternate = null;
            workInProgress.tag = SuspenseComponent;
            workInProgress.memoizedState = null;
            workInProgress.stateNode = null;
          }
        }
        break;
      }
    default:
      invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');
  }

  return null;
}

function shouldCaptureSuspense(workInProgress) {
  // In order to capture, the Suspense component must have a fallback prop.
  if (workInProgress.memoizedProps.fallback === undefined) {
    return false;
  }
  // If it was the primary children that just suspended, capture and render the
  // fallback. Otherwise, don't capture and bubble to the next boundary.
  var nextState = workInProgress.memoizedState;
  return nextState === null;
}

// This module is forked in different environments.
// By default, return `true` to log errors to the console.
// Forks can return `false` if this isn't desirable.
function showErrorDialog(capturedError) {
  return true;
}

function logCapturedError(capturedError) {
  var logError = showErrorDialog(capturedError);

  // Allow injected showErrorDialog() to prevent default console.error logging.
  // This enables renderers like ReactNative to better manage redbox behavior.
  if (logError === false) {
    return;
  }

  var error = capturedError.error;
  {
    var componentName = capturedError.componentName,
        componentStack = capturedError.componentStack,
        errorBoundaryName = capturedError.errorBoundaryName,
        errorBoundaryFound = capturedError.errorBoundaryFound,
        willRetry = capturedError.willRetry;

    // Browsers support silencing uncaught errors by calling
    // `preventDefault()` in window `error` handler.
    // We record this information as an expando on the error.

    if (error != null && error._suppressLogging) {
      if (errorBoundaryFound && willRetry) {
        // The error is recoverable and was silenced.
        // Ignore it and don't print the stack addendum.
        // This is handy for testing error boundaries without noise.
        return;
      }
      // The error is fatal. Since the silencing might have
      // been accidental, we'll surface it anyway.
      // However, the browser would have silenced the original error
      // so we'll print it first, and then print the stack addendum.
      console.error(error);
      // For a more detailed description of this block, see:
      // https://github.com/facebook/react/pull/13384
    }

    var componentNameMessage = componentName ? 'The above error occurred in the <' + componentName + '> component:' : 'The above error occurred in one of your React components:';

    var errorBoundaryMessage = void 0;
    // errorBoundaryFound check is sufficient; errorBoundaryName check is to satisfy Flow.
    if (errorBoundaryFound && errorBoundaryName) {
      if (willRetry) {
        errorBoundaryMessage = 'React will try to recreate this component tree from scratch ' + ('using the error boundary you provided, ' + errorBoundaryName + '.');
      } else {
        errorBoundaryMessage = 'This error was initially handled by the error boundary ' + errorBoundaryName + '.\n' + 'Recreating the tree from scratch failed so React will unmount the tree.';
      }
    } else {
      errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\n' + 'Visit https://fb.me/react-error-boundaries to learn more about error boundaries.';
    }
    var combinedMessage = '' + componentNameMessage + componentStack + '\n\n' + ('' + errorBoundaryMessage);

    // In development, we provide our own message with just the component stack.
    // We don't include the original error message and JS stack because the browser
    // has already printed it. Even if the application swallows the error, it is still
    // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.
    console.error(combinedMessage);
  }
}

var didWarnAboutUndefinedSnapshotBeforeUpdate = null;
{
  didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();
}

var PossiblyWeakSet$1 = typeof WeakSet === 'function' ? WeakSet : Set;

function logError(boundary, errorInfo) {
  var source = errorInfo.source;
  var stack = errorInfo.stack;
  if (stack === null && source !== null) {
    stack = getStackByFiberInDevAndProd(source);
  }

  var capturedError = {
    componentName: source !== null ? getComponentName(source.type) : null,
    componentStack: stack !== null ? stack : '',
    error: errorInfo.value,
    errorBoundary: null,
    errorBoundaryName: null,
    errorBoundaryFound: false,
    willRetry: false
  };

  if (boundary !== null && boundary.tag === ClassComponent) {
    capturedError.errorBoundary = boundary.stateNode;
    capturedError.errorBoundaryName = getComponentName(boundary.type);
    capturedError.errorBoundaryFound = true;
    capturedError.willRetry = true;
  }

  try {
    logCapturedError(capturedError);
  } catch (e) {
    // This method must not throw, or React internal state will get messed up.
    // If console.error is overridden, or logCapturedError() shows a dialog that throws,
    // we want to report this error outside of the normal stack as a last resort.
    // https://github.com/facebook/react/issues/13188
    setTimeout(function () {
      throw e;
    });
  }
}

var callComponentWillUnmountWithTimer = function (current$$1, instance) {
  startPhaseTimer(current$$1, 'componentWillUnmount');
  instance.props = current$$1.memoizedProps;
  instance.state = current$$1.memoizedState;
  instance.componentWillUnmount();
  stopPhaseTimer();
};

// Capture errors so they don't interrupt unmounting.
function safelyCallComponentWillUnmount(current$$1, instance) {
  {
    invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current$$1, instance);
    if (hasCaughtError()) {
      var unmountError = clearCaughtError();
      captureCommitPhaseError(current$$1, unmountError);
    }
  }
}

function safelyDetachRef(current$$1) {
  var ref = current$$1.ref;
  if (ref !== null) {
    if (typeof ref === 'function') {
      {
        invokeGuardedCallback(null, ref, null, null);
        if (hasCaughtError()) {
          var refError = clearCaughtError();
          captureCommitPhaseError(current$$1, refError);
        }
      }
    } else {
      ref.current = null;
    }
  }
}

function safelyCallDestroy(current$$1, destroy) {
  {
    invokeGuardedCallback(null, destroy, null);
    if (hasCaughtError()) {
      var error = clearCaughtError();
      captureCommitPhaseError(current$$1, error);
    }
  }
}

function commitBeforeMutationLifeCycles(current$$1, finishedWork) {
  switch (finishedWork.tag) {
    case FunctionComponent:
    case ForwardRef:
    case SimpleMemoComponent:
      {
        commitHookEffectList(UnmountSnapshot, NoEffect$1, finishedWork);
        return;
      }
    case ClassComponent:
      {
        if (finishedWork.effectTag & Snapshot) {
          if (current$$1 !== null) {
            var prevProps = current$$1.memoizedProps;
            var prevState = current$$1.memoizedState;
            startPhaseTimer(finishedWork, 'getSnapshotBeforeUpdate');
            var instance = finishedWork.stateNode;
            // We could update instance props and state here,
            // but instead we rely on them being set during last render.
            // TODO: revisit this when we implement resuming.
            {
              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {
                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
              }
            }
            var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);
            {
              var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;
              if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {
                didWarnSet.add(finishedWork.type);
                warningWithoutStack$1(false, '%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));
              }
            }
            instance.__reactInternalSnapshotBeforeUpdate = snapshot;
            stopPhaseTimer();
          }
        }
        return;
      }
    case HostRoot:
    case HostComponent:
    case HostText:
    case HostPortal:
    case IncompleteClassComponent:
      // Nothing to do for these component types
      return;
    default:
      {
        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');
      }
  }
}

function commitHookEffectList(unmountTag, mountTag, finishedWork) {
  var updateQueue = finishedWork.updateQueue;
  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;
  if (lastEffect !== null) {
    var firstEffect = lastEffect.next;
    var effect = firstEffect;
    do {
      if ((effect.tag & unmountTag) !== NoEffect$1) {
        // Unmount
        var destroy = effect.destroy;
        effect.destroy = undefined;
        if (destroy !== undefined) {
          destroy();
        }
      }
      if ((effect.tag & mountTag) !== NoEffect$1) {
        // Mount
        var create = effect.create;
        effect.destroy = create();

        {
          var _destroy = effect.destroy;
          if (_destroy !== undefined && typeof _destroy !== 'function') {
            var addendum = void 0;
            if (_destroy === null) {
              addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';
            } else if (typeof _destroy.then === 'function') {
              addendum = '\n\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\n\n' + 'useEffect(() => {\n' + '  async function fetchData() {\n' + '    // You can await here\n' + '    const response = await MyAPI.getData(someId);\n' + '    // ...\n' + '  }\n' + '  fetchData();\n' + '}, [someId]); // Or [] if effect doesn\'t need props or state\n\n' + 'Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching';
            } else {
              addendum = ' You returned: ' + _destroy;
            }
            warningWithoutStack$1(false, 'An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s%s', addendum, getStackByFiberInDevAndProd(finishedWork));
          }
        }
      }
      effect = effect.next;
    } while (effect !== firstEffect);
  }
}

function commitPassiveHookEffects(finishedWork) {
  commitHookEffectList(UnmountPassive, NoEffect$1, finishedWork);
  commitHookEffectList(NoEffect$1, MountPassive, finishedWork);
}

function commitLifeCycles(finishedRoot, current$$1, finishedWork, committedExpirationTime) {
  switch (finishedWork.tag) {
    case FunctionComponent:
    case ForwardRef:
    case SimpleMemoComponent:
      {
        commitHookEffectList(UnmountLayout, MountLayout, finishedWork);
        break;
      }
    case ClassComponent:
      {
        var instance = finishedWork.stateNode;
        if (finishedWork.effectTag & Update) {
          if (current$$1 === null) {
            startPhaseTimer(finishedWork, 'componentDidMount');
            // We could update instance props and state here,
            // but instead we rely on them being set during last render.
            // TODO: revisit this when we implement resuming.
            {
              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {
                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
              }
            }
            instance.componentDidMount();
            stopPhaseTimer();
          } else {
            var prevProps = finishedWork.elementType === finishedWork.type ? current$$1.memoizedProps : resolveDefaultProps(finishedWork.type, current$$1.memoizedProps);
            var prevState = current$$1.memoizedState;
            startPhaseTimer(finishedWork, 'componentDidUpdate');
            // We could update instance props and state here,
            // but instead we rely on them being set during last render.
            // TODO: revisit this when we implement resuming.
            {
              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {
                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
              }
            }
            instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);
            stopPhaseTimer();
          }
        }
        var updateQueue = finishedWork.updateQueue;
        if (updateQueue !== null) {
          {
            if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {
              !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
              !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;
            }
          }
          // We could update instance props and state here,
          // but instead we rely on them being set during last render.
          // TODO: revisit this when we implement resuming.
          commitUpdateQueue(finishedWork, updateQueue, instance, committedExpirationTime);
        }
        return;
      }
    case HostRoot:
      {
        var _updateQueue = finishedWork.updateQueue;
        if (_updateQueue !== null) {
          var _instance = null;
          if (finishedWork.child !== null) {
            switch (finishedWork.child.tag) {
              case HostComponent:
                _instance = getPublicInstance(finishedWork.child.stateNode);
                break;
              case ClassComponent:
                _instance = finishedWork.child.stateNode;
                break;
            }
          }
          commitUpdateQueue(finishedWork, _updateQueue, _instance, committedExpirationTime);
        }
        return;
      }
    case HostComponent:
      {
        var _instance2 = finishedWork.stateNode;

        // Renderers may schedule work to be done after host components are mounted
        // (eg DOM renderer may schedule auto-focus for inputs and form controls).
        // These effects should only be committed when components are first mounted,
        // aka when there is no current/alternate.
        if (current$$1 === null && finishedWork.effectTag & Update) {
          var type = finishedWork.type;
          var props = finishedWork.memoizedProps;
          commitMount(_instance2, type, props, finishedWork);
        }

        return;
      }
    case HostText:
      {
        // We have no life-cycles associated with text.
        return;
      }
    case HostPortal:
      {
        // We have no life-cycles associated with portals.
        return;
      }
    case Profiler:
      {
        if (enableProfilerTimer) {
          var onRender = finishedWork.memoizedProps.onRender;

          if (enableSchedulerTracing) {
            onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime(), finishedRoot.memoizedInteractions);
          } else {
            onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime());
          }
        }
        return;
      }
    case SuspenseComponent:
      break;
    case IncompleteClassComponent:
      break;
    default:
      {
        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');
      }
  }
}

function hideOrUnhideAllChildren(finishedWork, isHidden) {
  if (supportsMutation) {
    // We only have the top Fiber that was inserted but we need to recurse down its
    var node = finishedWork;
    while (true) {
      if (node.tag === HostComponent) {
        var instance = node.stateNode;
        if (isHidden) {
          hideInstance(instance);
        } else {
          unhideInstance(node.stateNode, node.memoizedProps);
        }
      } else if (node.tag === HostText) {
        var _instance3 = node.stateNode;
        if (isHidden) {
          hideTextInstance(_instance3);
        } else {
          unhideTextInstance(_instance3, node.memoizedProps);
        }
      } else if (node.tag === SuspenseComponent && node.memoizedState !== null) {
        // Found a nested Suspense component that timed out. Skip over the
        var fallbackChildFragment = node.child.sibling;
        fallbackChildFragment.return = node;
        node = fallbackChildFragment;
        continue;
      } else if (node.child !== null) {
        node.child.return = node;
        node = node.child;
        continue;
      }
      if (node === finishedWork) {
        return;
      }
      while (node.sibling === null) {
        if (node.return === null || node.return === finishedWork) {
          return;
        }
        node = node.return;
      }
      node.sibling.return = node.return;
      node = node.sibling;
    }
  }
}

function commitAttachRef(finishedWork) {
  var ref = finishedWork.ref;
  if (ref !== null) {
    var instance = finishedWork.stateNode;
    var instanceToUse = void 0;
    switch (finishedWork.tag) {
      case HostComponent:
        instanceToUse = getPublicInstance(instance);
        break;
      default:
        instanceToUse = instance;
    }
    if (typeof ref === 'function') {
      ref(instanceToUse);
    } else {
      {
        if (!ref.hasOwnProperty('current')) {
          warningWithoutStack$1(false, 'Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().%s', getComponentName(finishedWork.type), getStackByFiberInDevAndProd(finishedWork));
        }
      }

      ref.current = instanceToUse;
    }
  }
}

function commitDetachRef(current$$1) {
  var currentRef = current$$1.ref;
  if (currentRef !== null) {
    if (typeof currentRef === 'function') {
      currentRef(null);
    } else {
      currentRef.current = null;
    }
  }
}

// User-originating errors (lifecycles and refs) should not interrupt
// deletion, so don't let them throw. Host-originating errors should
// interrupt deletion, so it's okay
function commitUnmount(current$$1) {
  onCommitUnmount(current$$1);

  switch (current$$1.tag) {
    case FunctionComponent:
    case ForwardRef:
    case MemoComponent:
    case SimpleMemoComponent:
      {
        var updateQueue = current$$1.updateQueue;
        if (updateQueue !== null) {
          var lastEffect = updateQueue.lastEffect;
          if (lastEffect !== null) {
            var firstEffect = lastEffect.next;
            var effect = firstEffect;
            do {
              var destroy = effect.destroy;
              if (destroy !== undefined) {
                safelyCallDestroy(current$$1, destroy);
              }
              effect = effect.next;
            } while (effect !== firstEffect);
          }
        }
        break;
      }
    case ClassComponent:
      {
        safelyDetachRef(current$$1);
        var instance = current$$1.stateNode;
        if (typeof instance.componentWillUnmount === 'function') {
          safelyCallComponentWillUnmount(current$$1, instance);
        }
        return;
      }
    case HostComponent:
      {
        safelyDetachRef(current$$1);
        return;
      }
    case HostPortal:
      {
        // TODO: this is recursive.
        // We are also not using this parent because
        // the portal will get pushed immediately.
        if (supportsMutation) {
          unmountHostComponents(current$$1);
        } else if (supportsPersistence) {
          emptyPortalContainer(current$$1);
        }
        return;
      }
  }
}

function commitNestedUnmounts(root) {
  // While we're inside a removed host node we don't want to call
  // removeChild on the inner nodes because they're removed by the top
  // call anyway. We also want to call componentWillUnmount on all
  // composites before this host node is removed from the tree. Therefore
  var node = root;
  while (true) {
    commitUnmount(node);
    // Visit children because they may contain more composite or host nodes.
    // Skip portals because commitUnmount() currently visits them recursively.
    if (node.child !== null && (
    // If we use mutation we drill down into portals using commitUnmount above.
    // If we don't use mutation we drill down into portals here instead.
    !supportsMutation || node.tag !== HostPortal)) {
      node.child.return = node;
      node = node.child;
      continue;
    }
    if (node === root) {
      return;
    }
    while (node.sibling === null) {
      if (node.return === null || node.return === root) {
        return;
      }
      node = node.return;
    }
    node.sibling.return = node.return;
    node = node.sibling;
  }
}

function detachFiber(current$$1) {
  // Cut off the return pointers to disconnect it from the tree. Ideally, we
  // should clear the child pointer of the parent alternate to let this
  // get GC:ed but we don't know which for sure which parent is the current
  // one so we'll settle for GC:ing the subtree of this child. This child
  // itself will be GC:ed when the parent updates the next time.
  current$$1.return = null;
  current$$1.child = null;
  current$$1.memoizedState = null;
  current$$1.updateQueue = null;
  var alternate = current$$1.alternate;
  if (alternate !== null) {
    alternate.return = null;
    alternate.child = null;
    alternate.memoizedState = null;
    alternate.updateQueue = null;
  }
}

function emptyPortalContainer(current$$1) {
  if (!supportsPersistence) {
    return;
  }

  var portal = current$$1.stateNode;
  var containerInfo = portal.containerInfo;

  var emptyChildSet = createContainerChildSet(containerInfo);
  replaceContainerChildren(containerInfo, emptyChildSet);
}

function commitContainer(finishedWork) {
  if (!supportsPersistence) {
    return;
  }

  switch (finishedWork.tag) {
    case ClassComponent:
      {
        return;
      }
    case HostComponent:
      {
        return;
      }
    case HostText:
      {
        return;
      }
    case HostRoot:
    case HostPortal:
      {
        var portalOrRoot = finishedWork.stateNode;
        var containerInfo = portalOrRoot.containerInfo,
            _pendingChildren = portalOrRoot.pendingChildren;

        replaceContainerChildren(containerInfo, _pendingChildren);
        return;
      }
    default:
      {
        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');
      }
  }
}

function getHostParentFiber(fiber) {
  var parent = fiber.return;
  while (parent !== null) {
    if (isHostParent(parent)) {
      return parent;
    }
    parent = parent.return;
  }
  invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.');
}

function isHostParent(fiber) {
  return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;
}

function getHostSibling(fiber) {
  // We're going to search forward into the tree until we find a sibling host
  // node. Unfortunately, if multiple insertions are done in a row we have to
  // search past them. This leads to exponential search for the next sibling.
  var node = fiber;
  siblings: while (true) {
    // If we didn't find anything, let's try the next sibling.
    while (node.sibling === null) {
      if (node.return === null || isHostParent(node.return)) {
        // If we pop out of the root or hit the parent the fiber we are the
        // last sibling.
        return null;
      }
      node = node.return;
    }
    node.sibling.return = node.return;
    node = node.sibling;
    while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedSuspenseComponent) {
      // If it is not host node and, we might have a host node inside it.
      // Try to search down until we find one.
      if (node.effectTag & Placement) {
        // If we don't have a child, try the siblings instead.
        continue siblings;
      }
      // If we don't have a child, try the siblings instead.
      // We also skip portals because they are not part of this host tree.
      if (node.child === null || node.tag === HostPortal) {
        continue siblings;
      } else {
        node.child.return = node;
        node = node.child;
      }
    }
    // Check if this host node is stable or about to be placed.
    if (!(node.effectTag & Placement)) {
      // Found it!
      return node.stateNode;
    }
  }
}

function commitPlacement(finishedWork) {
  if (!supportsMutation) {
    return;
  }

  // Recursively insert all host nodes into the parent.
  var parentFiber = getHostParentFiber(finishedWork);

  // Note: these two variables *must* always be updated together.
  var parent = void 0;
  var isContainer = void 0;

  switch (parentFiber.tag) {
    case HostComponent:
      parent = parentFiber.stateNode;
      isContainer = false;
      break;
    case HostRoot:
      parent = parentFiber.stateNode.containerInfo;
      isContainer = true;
      break;
    case HostPortal:
      parent = parentFiber.stateNode.containerInfo;
      isContainer = true;
      break;
    default:
      invariant(false, 'Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.');
  }
  if (parentFiber.effectTag & ContentReset) {
    // Reset the text content of the parent before doing any insertions
    resetTextContent(parent);
    // Clear ContentReset from the effect tag
    parentFiber.effectTag &= ~ContentReset;
  }

  var before = getHostSibling(finishedWork);
  // We only have the top Fiber that was inserted but we need to recurse down its
  // children to find all the terminal nodes.
  var node = finishedWork;
  while (true) {
    if (node.tag === HostComponent || node.tag === HostText) {
      if (before) {
        if (isContainer) {
          insertInContainerBefore(parent, node.stateNode, before);
        } else {
          insertBefore(parent, node.stateNode, before);
        }
      } else {
        if (isContainer) {
          appendChildToContainer(parent, node.stateNode);
        } else {
          appendChild(parent, node.stateNode);
        }
      }
    } else if (node.tag === HostPortal) {
      // If the insertion itself is a portal, then we don't want to traverse
      // down its children. Instead, we'll get insertions from each child in
      // the portal directly.
    } else if (node.child !== null) {
      node.child.return = node;
      node = node.child;
      continue;
    }
    if (node === finishedWork) {
      return;
    }
    while (node.sibling === null) {
      if (node.return === null || node.return === finishedWork) {
        return;
      }
      node = node.return;
    }
    node.sibling.return = node.return;
    node = node.sibling;
  }
}

function unmountHostComponents(current$$1) {
  // We only have the top Fiber that was deleted but we need to recurse down its
  var node = current$$1;

  // Each iteration, currentParent is populated with node's host parent if not
  // currentParentIsValid.
  var currentParentIsValid = false;

  // Note: these two variables *must* always be updated together.
  var currentParent = void 0;
  var currentParentIsContainer = void 0;

  while (true) {
    if (!currentParentIsValid) {
      var parent = node.return;
      findParent: while (true) {
        !(parent !== null) ? invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.') : void 0;
        switch (parent.tag) {
          case HostComponent:
            currentParent = parent.stateNode;
            currentParentIsContainer = false;
            break findParent;
          case HostRoot:
            currentParent = parent.stateNode.containerInfo;
            currentParentIsContainer = true;
            break findParent;
          case HostPortal:
            currentParent = parent.stateNode.containerInfo;
            currentParentIsContainer = true;
            break findParent;
        }
        parent = parent.return;
      }
      currentParentIsValid = true;
    }

    if (node.tag === HostComponent || node.tag === HostText) {
      commitNestedUnmounts(node);
      // After all the children have unmounted, it is now safe to remove the
      // node from the tree.
      if (currentParentIsContainer) {
        removeChildFromContainer(currentParent, node.stateNode);
      } else {
        removeChild(currentParent, node.stateNode);
      }
      // Don't visit children because we already visited them.
    } else if (enableSuspenseServerRenderer && node.tag === DehydratedSuspenseComponent) {
      // Delete the dehydrated suspense boundary and all of its content.
      if (currentParentIsContainer) {
        clearSuspenseBoundaryFromContainer(currentParent, node.stateNode);
      } else {
        clearSuspenseBoundary(currentParent, node.stateNode);
      }
    } else if (node.tag === HostPortal) {
      if (node.child !== null) {
        // When we go into a portal, it becomes the parent to remove from.
        // We will reassign it back when we pop the portal on the way up.
        currentParent = node.stateNode.containerInfo;
        currentParentIsContainer = true;
        // Visit children because portals might contain host components.
        node.child.return = node;
        node = node.child;
        continue;
      }
    } else {
      commitUnmount(node);
      // Visit children because we may find more host components below.
      if (node.child !== null) {
        node.child.return = node;
        node = node.child;
        continue;
      }
    }
    if (node === current$$1) {
      return;
    }
    while (node.sibling === null) {
      if (node.return === null || node.return === current$$1) {
        return;
      }
      node = node.return;
      if (node.tag === HostPortal) {
        // When we go out of the portal, we need to restore the parent.
        // Since we don't keep a stack of them, we will search for it.
        currentParentIsValid = false;
      }
    }
    node.sibling.return = node.return;
    node = node.sibling;
  }
}

function commitDeletion(current$$1) {
  if (supportsMutation) {
    // Recursively delete all host nodes from the parent.
    // Detach refs and call componentWillUnmount() on the whole subtree.
    unmountHostComponents(current$$1);
  } else {
    // Detach refs and call componentWillUnmount() on the whole subtree.
    commitNestedUnmounts(current$$1);
  }
  detachFiber(current$$1);
}

function commitWork(current$$1, finishedWork) {
  if (!supportsMutation) {
    switch (finishedWork.tag) {
      case FunctionComponent:
      case ForwardRef:
      case MemoComponent:
      case SimpleMemoComponent:
        {
          // Note: We currently never use MountMutation, but useLayout uses
          // UnmountMutation.
          commitHookEffectList(UnmountMutation, MountMutation, finishedWork);
          return;
        }
    }

    commitContainer(finishedWork);
    return;
  }

  switch (finishedWork.tag) {
    case FunctionComponent:
    case ForwardRef:
    case MemoComponent:
    case SimpleMemoComponent:
      {
        // Note: We currently never use MountMutation, but useLayout uses
        // UnmountMutation.
        commitHookEffectList(UnmountMutation, MountMutation, finishedWork);
        return;
      }
    case ClassComponent:
      {
        return;
      }
    case HostComponent:
      {
        var instance = finishedWork.stateNode;
        if (instance != null) {
          // Commit the work prepared earlier.
          var newProps = finishedWork.memoizedProps;
          // For hydration we reuse the update path but we treat the oldProps
          // as the newProps. The updatePayload will contain the real change in
          // this case.
          var oldProps = current$$1 !== null ? current$$1.memoizedProps : newProps;
          var type = finishedWork.type;
          // TODO: Type the updateQueue to be specific to host components.
          var updatePayload = finishedWork.updateQueue;
          finishedWork.updateQueue = null;
          if (updatePayload !== null) {
            commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork);
          }
        }
        return;
      }
    case HostText:
      {
        !(finishedWork.stateNode !== null) ? invariant(false, 'This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.') : void 0;
        var textInstance = finishedWork.stateNode;
        var newText = finishedWork.memoizedProps;
        // For hydration we reuse the update path but we treat the oldProps
        // as the newProps. The updatePayload will contain the real change in
        // this case.
        var oldText = current$$1 !== null ? current$$1.memoizedProps : newText;
        commitTextUpdate(textInstance, oldText, newText);
        return;
      }
    case HostRoot:
      {
        return;
      }
    case Profiler:
      {
        return;
      }
    case SuspenseComponent:
      {
        var newState = finishedWork.memoizedState;

        var newDidTimeout = void 0;
        var primaryChildParent = finishedWork;
        if (newState === null) {
          newDidTimeout = false;
        } else {
          newDidTimeout = true;
          primaryChildParent = finishedWork.child;
          if (newState.timedOutAt === NoWork) {
            // If the children had not already timed out, record the time.
            // This is used to compute the elapsed time during subsequent
            // attempts to render the children.
            newState.timedOutAt = requestCurrentTime();
          }
        }

        if (primaryChildParent !== null) {
          hideOrUnhideAllChildren(primaryChildParent, newDidTimeout);
        }

        // If this boundary just timed out, then it will have a set of thenables.
        // For each thenable, attach a listener so that when it resolves, React
        // attempts to re-render the boundary in the primary (pre-timeout) state.
        var thenables = finishedWork.updateQueue;
        if (thenables !== null) {
          finishedWork.updateQueue = null;
          var retryCache = finishedWork.stateNode;
          if (retryCache === null) {
            retryCache = finishedWork.stateNode = new PossiblyWeakSet$1();
          }
          thenables.forEach(function (thenable) {
            // Memoize using the boundary fiber to prevent redundant listeners.
            var retry = retryTimedOutBoundary.bind(null, finishedWork, thenable);
            if (enableSchedulerTracing) {
              retry = tracing.unstable_wrap(retry);
            }
            if (!retryCache.has(thenable)) {
              retryCache.add(thenable);
              thenable.then(retry, retry);
            }
          });
        }

        return;
      }
    case IncompleteClassComponent:
      {
        return;
      }
    default:
      {
        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');
      }
  }
}

function commitResetTextContent(current$$1) {
  if (!supportsMutation) {
    return;
  }
  resetTextContent(current$$1.stateNode);
}

var PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;
var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;

function createRootErrorUpdate(fiber, errorInfo, expirationTime) {
  var update = createUpdate(expirationTime);
  // Unmount the root by rendering null.
  update.tag = CaptureUpdate;
  // Caution: React DevTools currently depends on this property
  // being called "element".
  update.payload = { element: null };
  var error = errorInfo.value;
  update.callback = function () {
    onUncaughtError(error);
    logError(fiber, errorInfo);
  };
  return update;
}

function createClassErrorUpdate(fiber, errorInfo, expirationTime) {
  var update = createUpdate(expirationTime);
  update.tag = CaptureUpdate;
  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;
  if (typeof getDerivedStateFromError === 'function') {
    var error = errorInfo.value;
    update.payload = function () {
      return getDerivedStateFromError(error);
    };
  }

  var inst = fiber.stateNode;
  if (inst !== null && typeof inst.componentDidCatch === 'function') {
    update.callback = function callback() {
      if (typeof getDerivedStateFromError !== 'function') {
        // To preserve the preexisting retry behavior of error boundaries,
        // we keep track of which ones already failed during this batch.
        // This gets reset before we yield back to the browser.
        // TODO: Warn in strict mode if getDerivedStateFromError is
        // not defined.
        markLegacyErrorBoundaryAsFailed(this);
      }
      var error = errorInfo.value;
      var stack = errorInfo.stack;
      logError(fiber, errorInfo);
      this.componentDidCatch(error, {
        componentStack: stack !== null ? stack : ''
      });
      {
        if (typeof getDerivedStateFromError !== 'function') {
          // If componentDidCatch is the only error boundary method defined,
          // then it needs to call setState to recover from errors.
          // If no state update is scheduled then the boundary will swallow the error.
          !(fiber.expirationTime === Sync) ? warningWithoutStack$1(false, '%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown') : void 0;
        }
      }
    };
  }
  return update;
}

function attachPingListener(root, renderExpirationTime, thenable) {
  // Attach a listener to the promise to "ping" the root and retry. But
  // only if one does not already exist for the current render expiration
  // time (which acts like a "thread ID" here).
  var pingCache = root.pingCache;
  var threadIDs = void 0;
  if (pingCache === null) {
    pingCache = root.pingCache = new PossiblyWeakMap();
    threadIDs = new Set();
    pingCache.set(thenable, threadIDs);
  } else {
    threadIDs = pingCache.get(thenable);
    if (threadIDs === undefined) {
      threadIDs = new Set();
      pingCache.set(thenable, threadIDs);
    }
  }
  if (!threadIDs.has(renderExpirationTime)) {
    // Memoize using the thread ID to prevent redundant listeners.
    threadIDs.add(renderExpirationTime);
    var ping = pingSuspendedRoot.bind(null, root, thenable, renderExpirationTime);
    if (enableSchedulerTracing) {
      ping = tracing.unstable_wrap(ping);
    }
    thenable.then(ping, ping);
  }
}

function throwException(root, returnFiber, sourceFiber, value, renderExpirationTime) {
  // The source fiber did not complete.
  sourceFiber.effectTag |= Incomplete;
  // Its effect list is no longer valid.
  sourceFiber.firstEffect = sourceFiber.lastEffect = null;

  if (value !== null && typeof value === 'object' && typeof value.then === 'function') {
    // This is a thenable.
    var thenable = value;

    // Find the earliest timeout threshold of all the placeholders in the
    // ancestor path. We could avoid this traversal by storing the thresholds on
    // the stack, but we choose not to because we only hit this path if we're
    // IO-bound (i.e. if something suspends). Whereas the stack is used even in
    // the non-IO- bound case.
    var _workInProgress = returnFiber;
    var earliestTimeoutMs = -1;
    var startTimeMs = -1;
    do {
      if (_workInProgress.tag === SuspenseComponent) {
        var current$$1 = _workInProgress.alternate;
        if (current$$1 !== null) {
          var currentState = current$$1.memoizedState;
          if (currentState !== null) {
            // Reached a boundary that already timed out. Do not search
            // any further.
            var timedOutAt = currentState.timedOutAt;
            startTimeMs = expirationTimeToMs(timedOutAt);
            // Do not search any further.
            break;
          }
        }
        var timeoutPropMs = _workInProgress.pendingProps.maxDuration;
        if (typeof timeoutPropMs === 'number') {
          if (timeoutPropMs <= 0) {
            earliestTimeoutMs = 0;
          } else if (earliestTimeoutMs === -1 || timeoutPropMs < earliestTimeoutMs) {
            earliestTimeoutMs = timeoutPropMs;
          }
        }
      }
      // If there is a DehydratedSuspenseComponent we don't have to do anything because
      // if something suspends inside it, we will simply leave that as dehydrated. It
      // will never timeout.
      _workInProgress = _workInProgress.return;
    } while (_workInProgress !== null);

    // Schedule the nearest Suspense to re-render the timed out view.
    _workInProgress = returnFiber;
    do {
      if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress)) {
        // Found the nearest boundary.

        // Stash the promise on the boundary fiber. If the boundary times out, we'll
        var thenables = _workInProgress.updateQueue;
        if (thenables === null) {
          var updateQueue = new Set();
          updateQueue.add(thenable);
          _workInProgress.updateQueue = updateQueue;
        } else {
          thenables.add(thenable);
        }

        // If the boundary is outside of concurrent mode, we should *not*
        // suspend the commit. Pretend as if the suspended component rendered
        // null and keep rendering. In the commit phase, we'll schedule a
        // subsequent synchronous update to re-render the Suspense.
        //
        // Note: It doesn't matter whether the component that suspended was
        // inside a concurrent mode tree. If the Suspense is outside of it, we
        // should *not* suspend the commit.
        if ((_workInProgress.mode & ConcurrentMode) === NoEffect) {
          _workInProgress.effectTag |= DidCapture;

          // We're going to commit this fiber even though it didn't complete.
          // But we shouldn't call any lifecycle methods or callbacks. Remove
          // all lifecycle effect tags.
          sourceFiber.effectTag &= ~(LifecycleEffectMask | Incomplete);

          if (sourceFiber.tag === ClassComponent) {
            var currentSourceFiber = sourceFiber.alternate;
            if (currentSourceFiber === null) {
              // This is a new mount. Change the tag so it's not mistaken for a
              // completed class component. For example, we should not call
              // componentWillUnmount if it is deleted.
              sourceFiber.tag = IncompleteClassComponent;
            } else {
              // When we try rendering again, we should not reuse the current fiber,
              // since it's known to be in an inconsistent state. Use a force updte to
              // prevent a bail out.
              var update = createUpdate(Sync);
              update.tag = ForceUpdate;
              enqueueUpdate(sourceFiber, update);
            }
          }

          // The source fiber did not complete. Mark it with Sync priority to
          // indicate that it still has pending work.
          sourceFiber.expirationTime = Sync;

          // Exit without suspending.
          return;
        }

        // Confirmed that the boundary is in a concurrent mode tree. Continue
        // with the normal suspend path.

        attachPingListener(root, renderExpirationTime, thenable);

        var absoluteTimeoutMs = void 0;
        if (earliestTimeoutMs === -1) {
          // If no explicit threshold is given, default to an arbitrarily large
          // value. The actual size doesn't matter because the threshold for the
          // whole tree will be clamped to the expiration time.
          absoluteTimeoutMs = maxSigned31BitInt;
        } else {
          if (startTimeMs === -1) {
            // This suspend happened outside of any already timed-out
            // placeholders. We don't know exactly when the update was
            // scheduled, but we can infer an approximate start time from the
            // expiration time. First, find the earliest uncommitted expiration
            // time in the tree, including work that is suspended. Then subtract
            // the offset used to compute an async update's expiration time.
            // This will cause high priority (interactive) work to expire
            // earlier than necessary, but we can account for this by adjusting
            // for the Just Noticeable Difference.
            var earliestExpirationTime = findEarliestOutstandingPriorityLevel(root, renderExpirationTime);
            var earliestExpirationTimeMs = expirationTimeToMs(earliestExpirationTime);
            startTimeMs = earliestExpirationTimeMs - LOW_PRIORITY_EXPIRATION;
          }
          absoluteTimeoutMs = startTimeMs + earliestTimeoutMs;
        }

        // Mark the earliest timeout in the suspended fiber's ancestor path.
        // After completing the root, we'll take the largest of all the
        // suspended fiber's timeouts and use it to compute a timeout for the
        // whole tree.
        renderDidSuspend(root, absoluteTimeoutMs, renderExpirationTime);

        _workInProgress.effectTag |= ShouldCapture;
        _workInProgress.expirationTime = renderExpirationTime;
        return;
      } else if (enableSuspenseServerRenderer && _workInProgress.tag === DehydratedSuspenseComponent) {
        attachPingListener(root, renderExpirationTime, thenable);

        // Since we already have a current fiber, we can eagerly add a retry listener.
        var retryCache = _workInProgress.memoizedState;
        if (retryCache === null) {
          retryCache = _workInProgress.memoizedState = new PossiblyWeakSet();
          var _current = _workInProgress.alternate;
          !_current ? invariant(false, 'A dehydrated suspense boundary must commit before trying to render. This is probably a bug in React.') : void 0;
          _current.memoizedState = retryCache;
        }
        // Memoize using the boundary fiber to prevent redundant listeners.
        if (!retryCache.has(thenable)) {
          retryCache.add(thenable);
          var retry = retryTimedOutBoundary.bind(null, _workInProgress, thenable);
          if (enableSchedulerTracing) {
            retry = tracing.unstable_wrap(retry);
          }
          thenable.then(retry, retry);
        }
        _workInProgress.effectTag |= ShouldCapture;
        _workInProgress.expirationTime = renderExpirationTime;
        return;
      }
      // This boundary already captured during this render. Continue to the next
      // boundary.
      _workInProgress = _workInProgress.return;
    } while (_workInProgress !== null);
    // No boundary was found. Fallthrough to error mode.
    // TODO: Use invariant so the message is stripped in prod?
    value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\n' + '\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.' + getStackByFiberInDevAndProd(sourceFiber));
  }

  // We didn't find a boundary that could handle this type of exception. Start
  // over and traverse parent path again, this time treating the exception
  // as an error.
  renderDidError();
  value = createCapturedValue(value, sourceFiber);
  var workInProgress = returnFiber;
  do {
    switch (workInProgress.tag) {
      case HostRoot:
        {
          var _errorInfo = value;
          workInProgress.effectTag |= ShouldCapture;
          workInProgress.expirationTime = renderExpirationTime;
          var _update = createRootErrorUpdate(workInProgress, _errorInfo, renderExpirationTime);
          enqueueCapturedUpdate(workInProgress, _update);
          return;
        }
      case ClassComponent:
        // Capture and retry
        var errorInfo = value;
        var ctor = workInProgress.type;
        var instance = workInProgress.stateNode;
        if ((workInProgress.effectTag & DidCapture) === NoEffect && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {
          workInProgress.effectTag |= ShouldCapture;
          workInProgress.expirationTime = renderExpirationTime;
          // Schedule the error boundary to re-render using updated state
          var _update2 = createClassErrorUpdate(workInProgress, errorInfo, renderExpirationTime);
          enqueueCapturedUpdate(workInProgress, _update2);
          return;
        }
        break;
      default:
        break;
    }
    workInProgress = workInProgress.return;
  } while (workInProgress !== null);
}

function unwindWork(workInProgress, renderExpirationTime) {
  switch (workInProgress.tag) {
    case ClassComponent:
      {
        var Component = workInProgress.type;
        if (isContextProvider(Component)) {
          popContext(workInProgress);
        }
        var effectTag = workInProgress.effectTag;
        if (effectTag & ShouldCapture) {
          workInProgress.effectTag = effectTag & ~ShouldCapture | DidCapture;
          return workInProgress;
        }
        return null;
      }
    case HostRoot:
      {
        popHostContainer(workInProgress);
        popTopLevelContextObject(workInProgress);
        var _effectTag = workInProgress.effectTag;
        !((_effectTag & DidCapture) === NoEffect) ? invariant(false, 'The root failed to unmount after an error. This is likely a bug in React. Please file an issue.') : void 0;
        workInProgress.effectTag = _effectTag & ~ShouldCapture | DidCapture;
        return workInProgress;
      }
    case HostComponent:
      {
        // TODO: popHydrationState
        popHostContext(workInProgress);
        return null;
      }
    case SuspenseComponent:
      {
        var _effectTag2 = workInProgress.effectTag;
        if (_effectTag2 & ShouldCapture) {
          workInProgress.effectTag = _effectTag2 & ~ShouldCapture | DidCapture;
          // Captured a suspense effect. Re-render the boundary.
          return workInProgress;
        }
        return null;
      }
    case DehydratedSuspenseComponent:
      {
        if (enableSuspenseServerRenderer) {
          // TODO: popHydrationState
          var _effectTag3 = workInProgress.effectTag;
          if (_effectTag3 & ShouldCapture) {
            workInProgress.effectTag = _effectTag3 & ~ShouldCapture | DidCapture;
            // Captured a suspense effect. Re-render the boundary.
            return workInProgress;
          }
        }
        return null;
      }
    case HostPortal:
      popHostContainer(workInProgress);
      return null;
    case ContextProvider:
      popProvider(workInProgress);
      return null;
    default:
      return null;
  }
}

function unwindInterruptedWork(interruptedWork) {
  switch (interruptedWork.tag) {
    case ClassComponent:
      {
        var childContextTypes = interruptedWork.type.childContextTypes;
        if (childContextTypes !== null && childContextTypes !== undefined) {
          popContext(interruptedWork);
        }
        break;
      }
    case HostRoot:
      {
        popHostContainer(interruptedWork);
        popTopLevelContextObject(interruptedWork);
        break;
      }
    case HostComponent:
      {
        popHostContext(interruptedWork);
        break;
      }
    case HostPortal:
      popHostContainer(interruptedWork);
      break;
    case ContextProvider:
      popProvider(interruptedWork);
      break;
    default:
      break;
  }
}

var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
var ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner;


var didWarnAboutStateTransition = void 0;
var didWarnSetStateChildContext = void 0;
var warnAboutUpdateOnUnmounted = void 0;
var warnAboutInvalidUpdates = void 0;

if (enableSchedulerTracing) {
  // Provide explicit error message when production+profiling bundle of e.g. react-dom
  // is used with production (non-profiling) bundle of scheduler/tracing
  !(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null) ? invariant(false, 'It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling') : void 0;
}

{
  didWarnAboutStateTransition = false;
  didWarnSetStateChildContext = false;
  var didWarnStateUpdateForUnmountedComponent = {};

  warnAboutUpdateOnUnmounted = function (fiber, isClass) {
    // We show the whole stack but dedupe on the top component's name because
    // the problematic code almost always lies inside that component.
    var componentName = getComponentName(fiber.type) || 'ReactComponent';
    if (didWarnStateUpdateForUnmountedComponent[componentName]) {
      return;
    }
    warningWithoutStack$1(false, "Can't perform a React state update on an unmounted component. This " + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.%s', isClass ? 'the componentWillUnmount method' : 'a useEffect cleanup function', getStackByFiberInDevAndProd(fiber));
    didWarnStateUpdateForUnmountedComponent[componentName] = true;
  };

  warnAboutInvalidUpdates = function (instance) {
    switch (phase) {
      case 'getChildContext':
        if (didWarnSetStateChildContext) {
          return;
        }
        warningWithoutStack$1(false, 'setState(...): Cannot call setState() inside getChildContext()');
        didWarnSetStateChildContext = true;
        break;
      case 'render':
        if (didWarnAboutStateTransition) {
          return;
        }
        warningWithoutStack$1(false, 'Cannot update during an existing state transition (such as within ' + '`render`). Render methods should be a pure function of props and state.');
        didWarnAboutStateTransition = true;
        break;
    }
  };
}

// Used to ensure computeUniqueAsyncExpiration is monotonically decreasing.
var lastUniqueAsyncExpiration = Sync - 1;

var isWorking = false;

// The next work in progress fiber that we're currently working on.
var nextUnitOfWork = null;
var nextRoot = null;
// The time at which we're currently rendering work.
var nextRenderExpirationTime = NoWork;
var nextLatestAbsoluteTimeoutMs = -1;
var nextRenderDidError = false;

// The next fiber with an effect that we're currently committing.
var nextEffect = null;

var isCommitting$1 = false;
var rootWithPendingPassiveEffects = null;
var passiveEffectCallbackHandle = null;
var passiveEffectCallback = null;

var legacyErrorBoundariesThatAlreadyFailed = null;

// Used for performance tracking.
var interruptedBy = null;

var stashedWorkInProgressProperties = void 0;
var replayUnitOfWork = void 0;
var mayReplayFailedUnitOfWork = void 0;
var isReplayingFailedUnitOfWork = void 0;
var originalReplayError = void 0;
var rethrowOriginalError = void 0;
if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
  stashedWorkInProgressProperties = null;
  mayReplayFailedUnitOfWork = true;
  isReplayingFailedUnitOfWork = false;
  originalReplayError = null;
  replayUnitOfWork = function (failedUnitOfWork, thrownValue, isYieldy) {
    if (thrownValue !== null && typeof thrownValue === 'object' && typeof thrownValue.then === 'function') {
      // Don't replay promises. Treat everything else like an error.
      // TODO: Need to figure out a different strategy if/when we add
      // support for catching other types.
      return;
    }

    // Restore the original state of the work-in-progress
    if (stashedWorkInProgressProperties === null) {
      // This should never happen. Don't throw because this code is DEV-only.
      warningWithoutStack$1(false, 'Could not replay rendering after an error. This is likely a bug in React. ' + 'Please file an issue.');
      return;
    }
    assignFiberPropertiesInDEV(failedUnitOfWork, stashedWorkInProgressProperties);

    switch (failedUnitOfWork.tag) {
      case HostRoot:
        popHostContainer(failedUnitOfWork);
        popTopLevelContextObject(failedUnitOfWork);
        break;
      case HostComponent:
        popHostContext(failedUnitOfWork);
        break;
      case ClassComponent:
        {
          var Component = failedUnitOfWork.type;
          if (isContextProvider(Component)) {
            popContext(failedUnitOfWork);
          }
          break;
        }
      case HostPortal:
        popHostContainer(failedUnitOfWork);
        break;
      case ContextProvider:
        popProvider(failedUnitOfWork);
        break;
    }
    // Replay the begin phase.
    isReplayingFailedUnitOfWork = true;
    originalReplayError = thrownValue;
    invokeGuardedCallback(null, workLoop, null, isYieldy);
    isReplayingFailedUnitOfWork = false;
    originalReplayError = null;
    if (hasCaughtError()) {
      var replayError = clearCaughtError();
      if (replayError != null && thrownValue != null) {
        try {
          // Reading the expando property is intentionally
          // inside `try` because it might be a getter or Proxy.
          if (replayError._suppressLogging) {
            // Also suppress logging for the original error.
            thrownValue._suppressLogging = true;
          }
        } catch (inner) {
          // Ignore.
        }
      }
    } else {
      // If the begin phase did not fail the second time, set this pointer
      // back to the original value.
      nextUnitOfWork = failedUnitOfWork;
    }
  };
  rethrowOriginalError = function () {
    throw originalReplayError;
  };
}

function resetStack() {
  if (nextUnitOfWork !== null) {
    var interruptedWork = nextUnitOfWork.return;
    while (interruptedWork !== null) {
      unwindInterruptedWork(interruptedWork);
      interruptedWork = interruptedWork.return;
    }
  }

  {
    ReactStrictModeWarnings.discardPendingWarnings();
    checkThatStackIsEmpty();
  }

  nextRoot = null;
  nextRenderExpirationTime = NoWork;
  nextLatestAbsoluteTimeoutMs = -1;
  nextRenderDidError = false;
  nextUnitOfWork = null;
}

function commitAllHostEffects() {
  while (nextEffect !== null) {
    {
      setCurrentFiber(nextEffect);
    }
    recordEffect();

    var effectTag = nextEffect.effectTag;

    if (effectTag & ContentReset) {
      commitResetTextContent(nextEffect);
    }

    if (effectTag & Ref) {
      var current$$1 = nextEffect.alternate;
      if (current$$1 !== null) {
        commitDetachRef(current$$1);
      }
    }

    // The following switch statement is only concerned about placement,
    // updates, and deletions. To avoid needing to add a case for every
    // possible bitmap value, we remove the secondary effects from the
    // effect tag and switch on that value.
    var primaryEffectTag = effectTag & (Placement | Update | Deletion);
    switch (primaryEffectTag) {
      case Placement:
        {
          commitPlacement(nextEffect);
          // Clear the "placement" from effect tag so that we know that this is inserted, before
          // any life-cycles like componentDidMount gets called.
          // TODO: findDOMNode doesn't rely on this any more but isMounted
          // does and isMounted is deprecated anyway so we should be able
          // to kill this.
          nextEffect.effectTag &= ~Placement;
          break;
        }
      case PlacementAndUpdate:
        {
          // Placement
          commitPlacement(nextEffect);
          // Clear the "placement" from effect tag so that we know that this is inserted, before
          // any life-cycles like componentDidMount gets called.
          nextEffect.effectTag &= ~Placement;

          // Update
          var _current = nextEffect.alternate;
          commitWork(_current, nextEffect);
          break;
        }
      case Update:
        {
          var _current2 = nextEffect.alternate;
          commitWork(_current2, nextEffect);
          break;
        }
      case Deletion:
        {
          commitDeletion(nextEffect);
          break;
        }
    }
    nextEffect = nextEffect.nextEffect;
  }

  {
    resetCurrentFiber();
  }
}

function commitBeforeMutationLifecycles() {
  while (nextEffect !== null) {
    {
      setCurrentFiber(nextEffect);
    }

    var effectTag = nextEffect.effectTag;
    if (effectTag & Snapshot) {
      recordEffect();
      var current$$1 = nextEffect.alternate;
      commitBeforeMutationLifeCycles(current$$1, nextEffect);
    }

    nextEffect = nextEffect.nextEffect;
  }

  {
    resetCurrentFiber();
  }
}

function commitAllLifeCycles(finishedRoot, committedExpirationTime) {
  {
    ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();
    ReactStrictModeWarnings.flushLegacyContextWarning();

    if (warnAboutDeprecatedLifecycles) {
      ReactStrictModeWarnings.flushPendingDeprecationWarnings();
    }
  }
  while (nextEffect !== null) {
    {
      setCurrentFiber(nextEffect);
    }
    var effectTag = nextEffect.effectTag;

    if (effectTag & (Update | Callback)) {
      recordEffect();
      var current$$1 = nextEffect.alternate;
      commitLifeCycles(finishedRoot, current$$1, nextEffect, committedExpirationTime);
    }

    if (effectTag & Ref) {
      recordEffect();
      commitAttachRef(nextEffect);
    }

    if (effectTag & Passive) {
      rootWithPendingPassiveEffects = finishedRoot;
    }

    nextEffect = nextEffect.nextEffect;
  }
  {
    resetCurrentFiber();
  }
}

function commitPassiveEffects(root, firstEffect) {
  rootWithPendingPassiveEffects = null;
  passiveEffectCallbackHandle = null;
  passiveEffectCallback = null;

  // Set this to true to prevent re-entrancy
  var previousIsRendering = isRendering;
  isRendering = true;

  var effect = firstEffect;
  do {
    {
      setCurrentFiber(effect);
    }

    if (effect.effectTag & Passive) {
      var didError = false;
      var error = void 0;
      {
        invokeGuardedCallback(null, commitPassiveHookEffects, null, effect);
        if (hasCaughtError()) {
          didError = true;
          error = clearCaughtError();
        }
      }
      if (didError) {
        captureCommitPhaseError(effect, error);
      }
    }
    effect = effect.nextEffect;
  } while (effect !== null);
  {
    resetCurrentFiber();
  }

  isRendering = previousIsRendering;

  // Check if work was scheduled by one of the effects
  var rootExpirationTime = root.expirationTime;
  if (rootExpirationTime !== NoWork) {
    requestWork(root, rootExpirationTime);
  }
  // Flush any sync work that was scheduled by effects
  if (!isBatchingUpdates && !isRendering) {
    performSyncWork();
  }
}

function isAlreadyFailedLegacyErrorBoundary(instance) {
  return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);
}

function markLegacyErrorBoundaryAsFailed(instance) {
  if (legacyErrorBoundariesThatAlreadyFailed === null) {
    legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);
  } else {
    legacyErrorBoundariesThatAlreadyFailed.add(instance);
  }
}

function flushPassiveEffects() {
  if (passiveEffectCallbackHandle !== null) {
    cancelPassiveEffects(passiveEffectCallbackHandle);
  }
  if (passiveEffectCallback !== null) {
    // We call the scheduled callback instead of commitPassiveEffects directly
    // to ensure tracing works correctly.
    passiveEffectCallback();
  }
}

function commitRoot(root, finishedWork) {
  isWorking = true;
  isCommitting$1 = true;
  startCommitTimer();

  !(root.current !== finishedWork) ? invariant(false, 'Cannot commit the same tree as before. This is probably a bug related to the return field. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  var committedExpirationTime = root.pendingCommitExpirationTime;
  !(committedExpirationTime !== NoWork) ? invariant(false, 'Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  root.pendingCommitExpirationTime = NoWork;

  // Update the pending priority levels to account for the work that we are
  // about to commit. This needs to happen before calling the lifecycles, since
  // they may schedule additional updates.
  var updateExpirationTimeBeforeCommit = finishedWork.expirationTime;
  var childExpirationTimeBeforeCommit = finishedWork.childExpirationTime;
  var earliestRemainingTimeBeforeCommit = childExpirationTimeBeforeCommit > updateExpirationTimeBeforeCommit ? childExpirationTimeBeforeCommit : updateExpirationTimeBeforeCommit;
  markCommittedPriorityLevels(root, earliestRemainingTimeBeforeCommit);

  var prevInteractions = null;
  if (enableSchedulerTracing) {
    // Restore any pending interactions at this point,
    // So that cascading work triggered during the render phase will be accounted for.
    prevInteractions = tracing.__interactionsRef.current;
    tracing.__interactionsRef.current = root.memoizedInteractions;
  }

  // Reset this to null before calling lifecycles
  ReactCurrentOwner$2.current = null;

  var firstEffect = void 0;
  if (finishedWork.effectTag > PerformedWork) {
    // A fiber's effect list consists only of its children, not itself. So if
    // the root has an effect, we need to add it to the end of the list. The
    // resulting list is the set that would belong to the root's parent, if
    // it had one; that is, all the effects in the tree including the root.
    if (finishedWork.lastEffect !== null) {
      finishedWork.lastEffect.nextEffect = finishedWork;
      firstEffect = finishedWork.firstEffect;
    } else {
      firstEffect = finishedWork;
    }
  } else {
    // There is no effect on the root.
    firstEffect = finishedWork.firstEffect;
  }

  prepareForCommit(root.containerInfo);

  // Invoke instances of getSnapshotBeforeUpdate before mutation.
  nextEffect = firstEffect;
  startCommitSnapshotEffectsTimer();
  while (nextEffect !== null) {
    var didError = false;
    var error = void 0;
    {
      invokeGuardedCallback(null, commitBeforeMutationLifecycles, null);
      if (hasCaughtError()) {
        didError = true;
        error = clearCaughtError();
      }
    }
    if (didError) {
      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;
      captureCommitPhaseError(nextEffect, error);
      // Clean-up
      if (nextEffect !== null) {
        nextEffect = nextEffect.nextEffect;
      }
    }
  }
  stopCommitSnapshotEffectsTimer();

  if (enableProfilerTimer) {
    // Mark the current commit time to be shared by all Profilers in this batch.
    // This enables them to be grouped later.
    recordCommitTime();
  }

  // Commit all the side-effects within a tree. We'll do this in two passes.
  // The first pass performs all the host insertions, updates, deletions and
  // ref unmounts.
  nextEffect = firstEffect;
  startCommitHostEffectsTimer();
  while (nextEffect !== null) {
    var _didError = false;
    var _error = void 0;
    {
      invokeGuardedCallback(null, commitAllHostEffects, null);
      if (hasCaughtError()) {
        _didError = true;
        _error = clearCaughtError();
      }
    }
    if (_didError) {
      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;
      captureCommitPhaseError(nextEffect, _error);
      // Clean-up
      if (nextEffect !== null) {
        nextEffect = nextEffect.nextEffect;
      }
    }
  }
  stopCommitHostEffectsTimer();

  resetAfterCommit(root.containerInfo);

  // The work-in-progress tree is now the current tree. This must come after
  // the first pass of the commit phase, so that the previous tree is still
  // current during componentWillUnmount, but before the second pass, so that
  // the finished work is current during componentDidMount/Update.
  root.current = finishedWork;

  // In the second pass we'll perform all life-cycles and ref callbacks.
  // Life-cycles happen as a separate pass so that all placements, updates,
  // and deletions in the entire tree have already been invoked.
  // This pass also triggers any renderer-specific initial effects.
  nextEffect = firstEffect;
  startCommitLifeCyclesTimer();
  while (nextEffect !== null) {
    var _didError2 = false;
    var _error2 = void 0;
    {
      invokeGuardedCallback(null, commitAllLifeCycles, null, root, committedExpirationTime);
      if (hasCaughtError()) {
        _didError2 = true;
        _error2 = clearCaughtError();
      }
    }
    if (_didError2) {
      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;
      captureCommitPhaseError(nextEffect, _error2);
      if (nextEffect !== null) {
        nextEffect = nextEffect.nextEffect;
      }
    }
  }

  if (firstEffect !== null && rootWithPendingPassiveEffects !== null) {
    // This commit included a passive effect. These do not need to fire until
    // after the next paint. Schedule an callback to fire them in an async
    // event. To ensure serial execution, the callback will be flushed early if
    // we enter rootWithPendingPassiveEffects commit phase before then.
    var callback = commitPassiveEffects.bind(null, root, firstEffect);
    if (enableSchedulerTracing) {
      // TODO: Avoid this extra callback by mutating the tracing ref directly,
      // like we do at the beginning of commitRoot. I've opted not to do that
      // here because that code is still in flux.
      callback = tracing.unstable_wrap(callback);
    }
    passiveEffectCallbackHandle = scheduler.unstable_runWithPriority(scheduler.unstable_NormalPriority, function () {
      return schedulePassiveEffects(callback);
    });
    passiveEffectCallback = callback;
  }

  isCommitting$1 = false;
  isWorking = false;
  stopCommitLifeCyclesTimer();
  stopCommitTimer();
  onCommitRoot(finishedWork.stateNode);
  if ( true && ReactFiberInstrumentation_1.debugTool) {
    ReactFiberInstrumentation_1.debugTool.onCommitWork(finishedWork);
  }

  var updateExpirationTimeAfterCommit = finishedWork.expirationTime;
  var childExpirationTimeAfterCommit = finishedWork.childExpirationTime;
  var earliestRemainingTimeAfterCommit = childExpirationTimeAfterCommit > updateExpirationTimeAfterCommit ? childExpirationTimeAfterCommit : updateExpirationTimeAfterCommit;
  if (earliestRemainingTimeAfterCommit === NoWork) {
    // If there's no remaining work, we can clear the set of already failed
    // error boundaries.
    legacyErrorBoundariesThatAlreadyFailed = null;
  }
  onCommit(root, earliestRemainingTimeAfterCommit);

  if (enableSchedulerTracing) {
    tracing.__interactionsRef.current = prevInteractions;

    var subscriber = void 0;

    try {
      subscriber = tracing.__subscriberRef.current;
      if (subscriber !== null && root.memoizedInteractions.size > 0) {
        var threadID = computeThreadID(committedExpirationTime, root.interactionThreadID);
        subscriber.onWorkStopped(root.memoizedInteractions, threadID);
      }
    } catch (error) {
      // It's not safe for commitRoot() to throw.
      // Store the error for now and we'll re-throw in finishRendering().
      if (!hasUnhandledError) {
        hasUnhandledError = true;
        unhandledError = error;
      }
    } finally {
      // Clear completed interactions from the pending Map.
      // Unless the render was suspended or cascading work was scheduled,
      // In which case– leave pending interactions until the subsequent render.
      var pendingInteractionMap = root.pendingInteractionMap;
      pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {
        // Only decrement the pending interaction count if we're done.
        // If there's still work at the current priority,
        // That indicates that we are waiting for suspense data.
        if (scheduledExpirationTime > earliestRemainingTimeAfterCommit) {
          pendingInteractionMap.delete(scheduledExpirationTime);

          scheduledInteractions.forEach(function (interaction) {
            interaction.__count--;

            if (subscriber !== null && interaction.__count === 0) {
              try {
                subscriber.onInteractionScheduledWorkCompleted(interaction);
              } catch (error) {
                // It's not safe for commitRoot() to throw.
                // Store the error for now and we'll re-throw in finishRendering().
                if (!hasUnhandledError) {
                  hasUnhandledError = true;
                  unhandledError = error;
                }
              }
            }
          });
        }
      });
    }
  }
}

function resetChildExpirationTime(workInProgress, renderTime) {
  if (renderTime !== Never && workInProgress.childExpirationTime === Never) {
    // The children of this component are hidden. Don't bubble their
    // expiration times.
    return;
  }

  var newChildExpirationTime = NoWork;

  // Bubble up the earliest expiration time.
  if (enableProfilerTimer && workInProgress.mode & ProfileMode) {
    // We're in profiling mode.
    // Let's use this same traversal to update the render durations.
    var actualDuration = workInProgress.actualDuration;
    var treeBaseDuration = workInProgress.selfBaseDuration;

    // When a fiber is cloned, its actualDuration is reset to 0.
    // This value will only be updated if work is done on the fiber (i.e. it doesn't bailout).
    // When work is done, it should bubble to the parent's actualDuration.
    // If the fiber has not been cloned though, (meaning no work was done),
    // Then this value will reflect the amount of time spent working on a previous render.
    // In that case it should not bubble.
    // We determine whether it was cloned by comparing the child pointer.
    var shouldBubbleActualDurations = workInProgress.alternate === null || workInProgress.child !== workInProgress.alternate.child;

    var child = workInProgress.child;
    while (child !== null) {
      var childUpdateExpirationTime = child.expirationTime;
      var childChildExpirationTime = child.childExpirationTime;
      if (childUpdateExpirationTime > newChildExpirationTime) {
        newChildExpirationTime = childUpdateExpirationTime;
      }
      if (childChildExpirationTime > newChildExpirationTime) {
        newChildExpirationTime = childChildExpirationTime;
      }
      if (shouldBubbleActualDurations) {
        actualDuration += child.actualDuration;
      }
      treeBaseDuration += child.treeBaseDuration;
      child = child.sibling;
    }
    workInProgress.actualDuration = actualDuration;
    workInProgress.treeBaseDuration = treeBaseDuration;
  } else {
    var _child = workInProgress.child;
    while (_child !== null) {
      var _childUpdateExpirationTime = _child.expirationTime;
      var _childChildExpirationTime = _child.childExpirationTime;
      if (_childUpdateExpirationTime > newChildExpirationTime) {
        newChildExpirationTime = _childUpdateExpirationTime;
      }
      if (_childChildExpirationTime > newChildExpirationTime) {
        newChildExpirationTime = _childChildExpirationTime;
      }
      _child = _child.sibling;
    }
  }

  workInProgress.childExpirationTime = newChildExpirationTime;
}

function completeUnitOfWork(workInProgress) {
  // Attempt to complete the current unit of work, then move to the
  // next sibling. If there are no more siblings, return to the
  // parent fiber.
  while (true) {
    // The current, flushed, state of this fiber is the alternate.
    // Ideally nothing should rely on this, but relying on it here
    // means that we don't need an additional field on the work in
    // progress.
    var current$$1 = workInProgress.alternate;
    {
      setCurrentFiber(workInProgress);
    }

    var returnFiber = workInProgress.return;
    var siblingFiber = workInProgress.sibling;

    if ((workInProgress.effectTag & Incomplete) === NoEffect) {
      if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
        // Don't replay if it fails during completion phase.
        mayReplayFailedUnitOfWork = false;
      }
      // This fiber completed.
      // Remember we're completing this unit so we can find a boundary if it fails.
      nextUnitOfWork = workInProgress;
      if (enableProfilerTimer) {
        if (workInProgress.mode & ProfileMode) {
          startProfilerTimer(workInProgress);
        }
        nextUnitOfWork = completeWork(current$$1, workInProgress, nextRenderExpirationTime);
        if (workInProgress.mode & ProfileMode) {
          // Update render duration assuming we didn't error.
          stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);
        }
      } else {
        nextUnitOfWork = completeWork(current$$1, workInProgress, nextRenderExpirationTime);
      }
      if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
        // We're out of completion phase so replaying is fine now.
        mayReplayFailedUnitOfWork = true;
      }
      stopWorkTimer(workInProgress);
      resetChildExpirationTime(workInProgress, nextRenderExpirationTime);
      {
        resetCurrentFiber();
      }

      if (nextUnitOfWork !== null) {
        // Completing this fiber spawned new work. Work on that next.
        return nextUnitOfWork;
      }

      if (returnFiber !== null &&
      // Do not append effects to parents if a sibling failed to complete
      (returnFiber.effectTag & Incomplete) === NoEffect) {
        // Append all the effects of the subtree and this fiber onto the effect
        // list of the parent. The completion order of the children affects the
        // side-effect order.
        if (returnFiber.firstEffect === null) {
          returnFiber.firstEffect = workInProgress.firstEffect;
        }
        if (workInProgress.lastEffect !== null) {
          if (returnFiber.lastEffect !== null) {
            returnFiber.lastEffect.nextEffect = workInProgress.firstEffect;
          }
          returnFiber.lastEffect = workInProgress.lastEffect;
        }

        // If this fiber had side-effects, we append it AFTER the children's
        // side-effects. We can perform certain side-effects earlier if
        // needed, by doing multiple passes over the effect list. We don't want
        // to schedule our own side-effect on our own list because if end up
        // reusing children we'll schedule this effect onto itself since we're
        // at the end.
        var effectTag = workInProgress.effectTag;
        // Skip both NoWork and PerformedWork tags when creating the effect list.
        // PerformedWork effect is read by React DevTools but shouldn't be committed.
        if (effectTag > PerformedWork) {
          if (returnFiber.lastEffect !== null) {
            returnFiber.lastEffect.nextEffect = workInProgress;
          } else {
            returnFiber.firstEffect = workInProgress;
          }
          returnFiber.lastEffect = workInProgress;
        }
      }

      if ( true && ReactFiberInstrumentation_1.debugTool) {
        ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);
      }

      if (siblingFiber !== null) {
        // If there is more work to do in this returnFiber, do that next.
        return siblingFiber;
      } else if (returnFiber !== null) {
        // If there's no more work in this returnFiber. Complete the returnFiber.
        workInProgress = returnFiber;
        continue;
      } else {
        // We've reached the root.
        return null;
      }
    } else {
      if (enableProfilerTimer && workInProgress.mode & ProfileMode) {
        // Record the render duration for the fiber that errored.
        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);

        // Include the time spent working on failed children before continuing.
        var actualDuration = workInProgress.actualDuration;
        var child = workInProgress.child;
        while (child !== null) {
          actualDuration += child.actualDuration;
          child = child.sibling;
        }
        workInProgress.actualDuration = actualDuration;
      }

      // This fiber did not complete because something threw. Pop values off
      // the stack without entering the complete phase. If this is a boundary,
      // capture values if possible.
      var next = unwindWork(workInProgress, nextRenderExpirationTime);
      // Because this fiber did not complete, don't reset its expiration time.
      if (workInProgress.effectTag & DidCapture) {
        // Restarting an error boundary
        stopFailedWorkTimer(workInProgress);
      } else {
        stopWorkTimer(workInProgress);
      }

      {
        resetCurrentFiber();
      }

      if (next !== null) {
        stopWorkTimer(workInProgress);
        if ( true && ReactFiberInstrumentation_1.debugTool) {
          ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);
        }

        // If completing this work spawned new work, do that next. We'll come
        // back here again.
        // Since we're restarting, remove anything that is not a host effect
        // from the effect tag.
        next.effectTag &= HostEffectMask;
        return next;
      }

      if (returnFiber !== null) {
        // Mark the parent fiber as incomplete and clear its effect list.
        returnFiber.firstEffect = returnFiber.lastEffect = null;
        returnFiber.effectTag |= Incomplete;
      }

      if ( true && ReactFiberInstrumentation_1.debugTool) {
        ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);
      }

      if (siblingFiber !== null) {
        // If there is more work to do in this returnFiber, do that next.
        return siblingFiber;
      } else if (returnFiber !== null) {
        // If there's no more work in this returnFiber. Complete the returnFiber.
        workInProgress = returnFiber;
        continue;
      } else {
        return null;
      }
    }
  }

  // Without this explicit null return Flow complains of invalid return type
  // TODO Remove the above while(true) loop
  // eslint-disable-next-line no-unreachable
  return null;
}

function performUnitOfWork(workInProgress) {
  // The current, flushed, state of this fiber is the alternate.
  // Ideally nothing should rely on this, but relying on it here
  // means that we don't need an additional field on the work in
  // progress.
  var current$$1 = workInProgress.alternate;

  // See if beginning this work spawns more work.
  startWorkTimer(workInProgress);
  {
    setCurrentFiber(workInProgress);
  }

  if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
    stashedWorkInProgressProperties = assignFiberPropertiesInDEV(stashedWorkInProgressProperties, workInProgress);
  }

  var next = void 0;
  if (enableProfilerTimer) {
    if (workInProgress.mode & ProfileMode) {
      startProfilerTimer(workInProgress);
    }

    next = beginWork(current$$1, workInProgress, nextRenderExpirationTime);
    workInProgress.memoizedProps = workInProgress.pendingProps;

    if (workInProgress.mode & ProfileMode) {
      // Record the render duration assuming we didn't bailout (or error).
      stopProfilerTimerIfRunningAndRecordDelta(workInProgress, true);
    }
  } else {
    next = beginWork(current$$1, workInProgress, nextRenderExpirationTime);
    workInProgress.memoizedProps = workInProgress.pendingProps;
  }

  {
    resetCurrentFiber();
    if (isReplayingFailedUnitOfWork) {
      // Currently replaying a failed unit of work. This should be unreachable,
      // because the render phase is meant to be idempotent, and it should
      // have thrown again. Since it didn't, rethrow the original error, so
      // React's internal stack is not misaligned.
      rethrowOriginalError();
    }
  }
  if ( true && ReactFiberInstrumentation_1.debugTool) {
    ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress);
  }

  if (next === null) {
    // If this doesn't spawn new work, complete the current work.
    next = completeUnitOfWork(workInProgress);
  }

  ReactCurrentOwner$2.current = null;

  return next;
}

function workLoop(isYieldy) {
  if (!isYieldy) {
    // Flush work without yielding
    while (nextUnitOfWork !== null) {
      nextUnitOfWork = performUnitOfWork(nextUnitOfWork);
    }
  } else {
    // Flush asynchronous work until there's a higher priority event
    while (nextUnitOfWork !== null && !shouldYieldToRenderer()) {
      nextUnitOfWork = performUnitOfWork(nextUnitOfWork);
    }
  }
}

function renderRoot(root, isYieldy) {
  !!isWorking ? invariant(false, 'renderRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  flushPassiveEffects();

  isWorking = true;
  var previousDispatcher = ReactCurrentDispatcher.current;
  ReactCurrentDispatcher.current = ContextOnlyDispatcher;

  var expirationTime = root.nextExpirationTimeToWorkOn;

  // Check if we're starting from a fresh stack, or if we're resuming from
  // previously yielded work.
  if (expirationTime !== nextRenderExpirationTime || root !== nextRoot || nextUnitOfWork === null) {
    // Reset the stack and start working from the root.
    resetStack();
    nextRoot = root;
    nextRenderExpirationTime = expirationTime;
    nextUnitOfWork = createWorkInProgress(nextRoot.current, null, nextRenderExpirationTime);
    root.pendingCommitExpirationTime = NoWork;

    if (enableSchedulerTracing) {
      // Determine which interactions this batch of work currently includes,
      // So that we can accurately attribute time spent working on it,
      var interactions = new Set();
      root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {
        if (scheduledExpirationTime >= expirationTime) {
          scheduledInteractions.forEach(function (interaction) {
            return interactions.add(interaction);
          });
        }
      });

      // Store the current set of interactions on the FiberRoot for a few reasons:
      // We can re-use it in hot functions like renderRoot() without having to recalculate it.
      // We will also use it in commitWork() to pass to any Profiler onRender() hooks.
      // This also provides DevTools with a way to access it when the onCommitRoot() hook is called.
      root.memoizedInteractions = interactions;

      if (interactions.size > 0) {
        var subscriber = tracing.__subscriberRef.current;
        if (subscriber !== null) {
          var threadID = computeThreadID(expirationTime, root.interactionThreadID);
          try {
            subscriber.onWorkStarted(interactions, threadID);
          } catch (error) {
            // Work thrown by an interaction tracing subscriber should be rethrown,
            // But only once it's safe (to avoid leaving the scheduler in an invalid state).
            // Store the error for now and we'll re-throw in finishRendering().
            if (!hasUnhandledError) {
              hasUnhandledError = true;
              unhandledError = error;
            }
          }
        }
      }
    }
  }

  var prevInteractions = null;
  if (enableSchedulerTracing) {
    // We're about to start new traced work.
    // Restore pending interactions so cascading work triggered during the render phase will be accounted for.
    prevInteractions = tracing.__interactionsRef.current;
    tracing.__interactionsRef.current = root.memoizedInteractions;
  }

  var didFatal = false;

  startWorkLoopTimer(nextUnitOfWork);

  do {
    try {
      workLoop(isYieldy);
    } catch (thrownValue) {
      resetContextDependences();
      resetHooks();

      // Reset in case completion throws.
      // This is only used in DEV and when replaying is on.
      var mayReplay = void 0;
      if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
        mayReplay = mayReplayFailedUnitOfWork;
        mayReplayFailedUnitOfWork = true;
      }

      if (nextUnitOfWork === null) {
        // This is a fatal error.
        didFatal = true;
        onUncaughtError(thrownValue);
      } else {
        if (enableProfilerTimer && nextUnitOfWork.mode & ProfileMode) {
          // Record the time spent rendering before an error was thrown.
          // This avoids inaccurate Profiler durations in the case of a suspended render.
          stopProfilerTimerIfRunningAndRecordDelta(nextUnitOfWork, true);
        }

        {
          // Reset global debug state
          // We assume this is defined in DEV
          resetCurrentlyProcessingQueue();
        }

        if ( true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {
          if (mayReplay) {
            var failedUnitOfWork = nextUnitOfWork;
            replayUnitOfWork(failedUnitOfWork, thrownValue, isYieldy);
          }
        }

        // TODO: we already know this isn't true in some cases.
        // At least this shows a nicer error message until we figure out the cause.
        // https://github.com/facebook/react/issues/12449#issuecomment-386727431
        !(nextUnitOfWork !== null) ? invariant(false, 'Failed to replay rendering after an error. This is likely caused by a bug in React. Please file an issue with a reproducing case to help us find it.') : void 0;

        var sourceFiber = nextUnitOfWork;
        var returnFiber = sourceFiber.return;
        if (returnFiber === null) {
          // This is the root. The root could capture its own errors. However,
          // we don't know if it errors before or after we pushed the host
          // context. This information is needed to avoid a stack mismatch.
          // Because we're not sure, treat this as a fatal error. We could track
          // which phase it fails in, but doesn't seem worth it. At least
          // for now.
          didFatal = true;
          onUncaughtError(thrownValue);
        } else {
          throwException(root, returnFiber, sourceFiber, thrownValue, nextRenderExpirationTime);
          nextUnitOfWork = completeUnitOfWork(sourceFiber);
          continue;
        }
      }
    }
    break;
  } while (true);

  if (enableSchedulerTracing) {
    // Traced work is done for now; restore the previous interactions.
    tracing.__interactionsRef.current = prevInteractions;
  }

  // We're done performing work. Time to clean up.
  isWorking = false;
  ReactCurrentDispatcher.current = previousDispatcher;
  resetContextDependences();
  resetHooks();

  // Yield back to main thread.
  if (didFatal) {
    var _didCompleteRoot = false;
    stopWorkLoopTimer(interruptedBy, _didCompleteRoot);
    interruptedBy = null;
    // There was a fatal error.
    {
      resetStackAfterFatalErrorInDev();
    }
    // `nextRoot` points to the in-progress root. A non-null value indicates
    // that we're in the middle of an async render. Set it to null to indicate
    // there's no more work to be done in the current batch.
    nextRoot = null;
    onFatal(root);
    return;
  }

  if (nextUnitOfWork !== null) {
    // There's still remaining async work in this tree, but we ran out of time
    // in the current frame. Yield back to the renderer. Unless we're
    // interrupted by a higher priority update, we'll continue later from where
    // we left off.
    var _didCompleteRoot2 = false;
    stopWorkLoopTimer(interruptedBy, _didCompleteRoot2);
    interruptedBy = null;
    onYield(root);
    return;
  }

  // We completed the whole tree.
  var didCompleteRoot = true;
  stopWorkLoopTimer(interruptedBy, didCompleteRoot);
  var rootWorkInProgress = root.current.alternate;
  !(rootWorkInProgress !== null) ? invariant(false, 'Finished root should have a work-in-progress. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  // `nextRoot` points to the in-progress root. A non-null value indicates
  // that we're in the middle of an async render. Set it to null to indicate
  // there's no more work to be done in the current batch.
  nextRoot = null;
  interruptedBy = null;

  if (nextRenderDidError) {
    // There was an error
    if (hasLowerPriorityWork(root, expirationTime)) {
      // There's lower priority work. If so, it may have the effect of fixing
      // the exception that was just thrown. Exit without committing. This is
      // similar to a suspend, but without a timeout because we're not waiting
      // for a promise to resolve. React will restart at the lower
      // priority level.
      markSuspendedPriorityLevel(root, expirationTime);
      var suspendedExpirationTime = expirationTime;
      var rootExpirationTime = root.expirationTime;
      onSuspend(root, rootWorkInProgress, suspendedExpirationTime, rootExpirationTime, -1 // Indicates no timeout
      );
      return;
    } else if (
    // There's no lower priority work, but we're rendering asynchronously.
    // Synchronously attempt to render the same level one more time. This is
    // similar to a suspend, but without a timeout because we're not waiting
    // for a promise to resolve.
    !root.didError && isYieldy) {
      root.didError = true;
      var _suspendedExpirationTime = root.nextExpirationTimeToWorkOn = expirationTime;
      var _rootExpirationTime = root.expirationTime = Sync;
      onSuspend(root, rootWorkInProgress, _suspendedExpirationTime, _rootExpirationTime, -1 // Indicates no timeout
      );
      return;
    }
  }

  if (isYieldy && nextLatestAbsoluteTimeoutMs !== -1) {
    // The tree was suspended.
    var _suspendedExpirationTime2 = expirationTime;
    markSuspendedPriorityLevel(root, _suspendedExpirationTime2);

    // Find the earliest uncommitted expiration time in the tree, including
    // work that is suspended. The timeout threshold cannot be longer than
    // the overall expiration.
    var earliestExpirationTime = findEarliestOutstandingPriorityLevel(root, expirationTime);
    var earliestExpirationTimeMs = expirationTimeToMs(earliestExpirationTime);
    if (earliestExpirationTimeMs < nextLatestAbsoluteTimeoutMs) {
      nextLatestAbsoluteTimeoutMs = earliestExpirationTimeMs;
    }

    // Subtract the current time from the absolute timeout to get the number
    // of milliseconds until the timeout. In other words, convert an absolute
    // timestamp to a relative time. This is the value that is passed
    // to `setTimeout`.
    var currentTimeMs = expirationTimeToMs(requestCurrentTime());
    var msUntilTimeout = nextLatestAbsoluteTimeoutMs - currentTimeMs;
    msUntilTimeout = msUntilTimeout < 0 ? 0 : msUntilTimeout;

    // TODO: Account for the Just Noticeable Difference

    var _rootExpirationTime2 = root.expirationTime;
    onSuspend(root, rootWorkInProgress, _suspendedExpirationTime2, _rootExpirationTime2, msUntilTimeout);
    return;
  }

  // Ready to commit.
  onComplete(root, rootWorkInProgress, expirationTime);
}

function captureCommitPhaseError(sourceFiber, value) {
  var expirationTime = Sync;
  var fiber = sourceFiber.return;
  while (fiber !== null) {
    switch (fiber.tag) {
      case ClassComponent:
        var ctor = fiber.type;
        var instance = fiber.stateNode;
        if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {
          var errorInfo = createCapturedValue(value, sourceFiber);
          var update = createClassErrorUpdate(fiber, errorInfo, expirationTime);
          enqueueUpdate(fiber, update);
          scheduleWork(fiber, expirationTime);
          return;
        }
        break;
      case HostRoot:
        {
          var _errorInfo = createCapturedValue(value, sourceFiber);
          var _update = createRootErrorUpdate(fiber, _errorInfo, expirationTime);
          enqueueUpdate(fiber, _update);
          scheduleWork(fiber, expirationTime);
          return;
        }
    }
    fiber = fiber.return;
  }

  if (sourceFiber.tag === HostRoot) {
    // Error was thrown at the root. There is no parent, so the root
    // itself should capture it.
    var rootFiber = sourceFiber;
    var _errorInfo2 = createCapturedValue(value, rootFiber);
    var _update2 = createRootErrorUpdate(rootFiber, _errorInfo2, expirationTime);
    enqueueUpdate(rootFiber, _update2);
    scheduleWork(rootFiber, expirationTime);
  }
}

function computeThreadID(expirationTime, interactionThreadID) {
  // Interaction threads are unique per root and expiration time.
  return expirationTime * 1000 + interactionThreadID;
}

// Creates a unique async expiration time.
function computeUniqueAsyncExpiration() {
  var currentTime = requestCurrentTime();
  var result = computeAsyncExpiration(currentTime);
  if (result >= lastUniqueAsyncExpiration) {
    // Since we assume the current time monotonically increases, we only hit
    // this branch when computeUniqueAsyncExpiration is fired multiple times
    // within a 200ms window (or whatever the async bucket size is).
    result = lastUniqueAsyncExpiration - 1;
  }
  lastUniqueAsyncExpiration = result;
  return lastUniqueAsyncExpiration;
}

function computeExpirationForFiber(currentTime, fiber) {
  var priorityLevel = scheduler.unstable_getCurrentPriorityLevel();

  var expirationTime = void 0;
  if ((fiber.mode & ConcurrentMode) === NoContext) {
    // Outside of concurrent mode, updates are always synchronous.
    expirationTime = Sync;
  } else if (isWorking && !isCommitting$1) {
    // During render phase, updates expire during as the current render.
    expirationTime = nextRenderExpirationTime;
  } else {
    switch (priorityLevel) {
      case scheduler.unstable_ImmediatePriority:
        expirationTime = Sync;
        break;
      case scheduler.unstable_UserBlockingPriority:
        expirationTime = computeInteractiveExpiration(currentTime);
        break;
      case scheduler.unstable_NormalPriority:
        // This is a normal, concurrent update
        expirationTime = computeAsyncExpiration(currentTime);
        break;
      case scheduler.unstable_LowPriority:
      case scheduler.unstable_IdlePriority:
        expirationTime = Never;
        break;
      default:
        invariant(false, 'Unknown priority level. This error is likely caused by a bug in React. Please file an issue.');
    }

    // If we're in the middle of rendering a tree, do not update at the same
    // expiration time that is already rendering.
    if (nextRoot !== null && expirationTime === nextRenderExpirationTime) {
      expirationTime -= 1;
    }
  }

  // Keep track of the lowest pending interactive expiration time. This
  // allows us to synchronously flush all interactive updates
  // when needed.
  // TODO: Move this to renderer?
  if (priorityLevel === scheduler.unstable_UserBlockingPriority && (lowestPriorityPendingInteractiveExpirationTime === NoWork || expirationTime < lowestPriorityPendingInteractiveExpirationTime)) {
    lowestPriorityPendingInteractiveExpirationTime = expirationTime;
  }

  return expirationTime;
}

function renderDidSuspend(root, absoluteTimeoutMs, suspendedTime) {
  // Schedule the timeout.
  if (absoluteTimeoutMs >= 0 && nextLatestAbsoluteTimeoutMs < absoluteTimeoutMs) {
    nextLatestAbsoluteTimeoutMs = absoluteTimeoutMs;
  }
}

function renderDidError() {
  nextRenderDidError = true;
}

function pingSuspendedRoot(root, thenable, pingTime) {
  // A promise that previously suspended React from committing has resolved.
  // If React is still suspended, try again at the previous level (pingTime).

  var pingCache = root.pingCache;
  if (pingCache !== null) {
    // The thenable resolved, so we no longer need to memoize, because it will
    // never be thrown again.
    pingCache.delete(thenable);
  }

  if (nextRoot !== null && nextRenderExpirationTime === pingTime) {
    // Received a ping at the same priority level at which we're currently
    // rendering. Restart from the root.
    nextRoot = null;
  } else {
    // Confirm that the root is still suspended at this level. Otherwise exit.
    if (isPriorityLevelSuspended(root, pingTime)) {
      // Ping at the original level
      markPingedPriorityLevel(root, pingTime);
      var rootExpirationTime = root.expirationTime;
      if (rootExpirationTime !== NoWork) {
        requestWork(root, rootExpirationTime);
      }
    }
  }
}

function retryTimedOutBoundary(boundaryFiber, thenable) {
  // The boundary fiber (a Suspense component) previously timed out and was
  // rendered in its fallback state. One of the promises that suspended it has
  // resolved, which means at least part of the tree was likely unblocked. Try
  var retryCache = void 0;
  if (enableSuspenseServerRenderer) {
    switch (boundaryFiber.tag) {
      case SuspenseComponent:
        retryCache = boundaryFiber.stateNode;
        break;
      case DehydratedSuspenseComponent:
        retryCache = boundaryFiber.memoizedState;
        break;
      default:
        invariant(false, 'Pinged unknown suspense boundary type. This is probably a bug in React.');
    }
  } else {
    retryCache = boundaryFiber.stateNode;
  }
  if (retryCache !== null) {
    // The thenable resolved, so we no longer need to memoize, because it will
    // never be thrown again.
    retryCache.delete(thenable);
  }

  var currentTime = requestCurrentTime();
  var retryTime = computeExpirationForFiber(currentTime, boundaryFiber);
  var root = scheduleWorkToRoot(boundaryFiber, retryTime);
  if (root !== null) {
    markPendingPriorityLevel(root, retryTime);
    var rootExpirationTime = root.expirationTime;
    if (rootExpirationTime !== NoWork) {
      requestWork(root, rootExpirationTime);
    }
  }
}

function scheduleWorkToRoot(fiber, expirationTime) {
  recordScheduleUpdate();

  {
    if (fiber.tag === ClassComponent) {
      var instance = fiber.stateNode;
      warnAboutInvalidUpdates(instance);
    }
  }

  // Update the source fiber's expiration time
  if (fiber.expirationTime < expirationTime) {
    fiber.expirationTime = expirationTime;
  }
  var alternate = fiber.alternate;
  if (alternate !== null && alternate.expirationTime < expirationTime) {
    alternate.expirationTime = expirationTime;
  }
  // Walk the parent path to the root and update the child expiration time.
  var node = fiber.return;
  var root = null;
  if (node === null && fiber.tag === HostRoot) {
    root = fiber.stateNode;
  } else {
    while (node !== null) {
      alternate = node.alternate;
      if (node.childExpirationTime < expirationTime) {
        node.childExpirationTime = expirationTime;
        if (alternate !== null && alternate.childExpirationTime < expirationTime) {
          alternate.childExpirationTime = expirationTime;
        }
      } else if (alternate !== null && alternate.childExpirationTime < expirationTime) {
        alternate.childExpirationTime = expirationTime;
      }
      if (node.return === null && node.tag === HostRoot) {
        root = node.stateNode;
        break;
      }
      node = node.return;
    }
  }

  if (enableSchedulerTracing) {
    if (root !== null) {
      var interactions = tracing.__interactionsRef.current;
      if (interactions.size > 0) {
        var pendingInteractionMap = root.pendingInteractionMap;
        var pendingInteractions = pendingInteractionMap.get(expirationTime);
        if (pendingInteractions != null) {
          interactions.forEach(function (interaction) {
            if (!pendingInteractions.has(interaction)) {
              // Update the pending async work count for previously unscheduled interaction.
              interaction.__count++;
            }

            pendingInteractions.add(interaction);
          });
        } else {
          pendingInteractionMap.set(expirationTime, new Set(interactions));

          // Update the pending async work count for the current interactions.
          interactions.forEach(function (interaction) {
            interaction.__count++;
          });
        }

        var subscriber = tracing.__subscriberRef.current;
        if (subscriber !== null) {
          var threadID = computeThreadID(expirationTime, root.interactionThreadID);
          subscriber.onWorkScheduled(interactions, threadID);
        }
      }
    }
  }
  return root;
}

function warnIfNotCurrentlyBatchingInDev(fiber) {
  {
    if (isRendering === false && isBatchingUpdates === false) {
      warningWithoutStack$1(false, 'An update to %s inside a test was not wrapped in act(...).\n\n' + 'When testing, code that causes React state updates should be wrapped into act(...):\n\n' + 'act(() => {\n' + '  /* fire events that update state */\n' + '});\n' + '/* assert on the output */\n\n' + "This ensures that you're testing the behavior the user would see in the browser." + ' Learn more at https://fb.me/react-wrap-tests-with-act' + '%s', getComponentName(fiber.type), getStackByFiberInDevAndProd(fiber));
    }
  }
}

function scheduleWork(fiber, expirationTime) {
  var root = scheduleWorkToRoot(fiber, expirationTime);
  if (root === null) {
    {
      switch (fiber.tag) {
        case ClassComponent:
          warnAboutUpdateOnUnmounted(fiber, true);
          break;
        case FunctionComponent:
        case ForwardRef:
        case MemoComponent:
        case SimpleMemoComponent:
          warnAboutUpdateOnUnmounted(fiber, false);
          break;
      }
    }
    return;
  }

  if (!isWorking && nextRenderExpirationTime !== NoWork && expirationTime > nextRenderExpirationTime) {
    // This is an interruption. (Used for performance tracking.)
    interruptedBy = fiber;
    resetStack();
  }
  markPendingPriorityLevel(root, expirationTime);
  if (
  // If we're in the render phase, we don't need to schedule this root
  // for an update, because we'll do it before we exit...
  !isWorking || isCommitting$1 ||
  // ...unless this is a different root than the one we're rendering.
  nextRoot !== root) {
    var rootExpirationTime = root.expirationTime;
    requestWork(root, rootExpirationTime);
  }
  if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {
    // Reset this back to zero so subsequent updates don't throw.
    nestedUpdateCount = 0;
    invariant(false, 'Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.');
  }
}

function syncUpdates(fn, a, b, c, d) {
  return scheduler.unstable_runWithPriority(scheduler.unstable_ImmediatePriority, function () {
    return fn(a, b, c, d);
  });
}

// TODO: Everything below this is written as if it has been lifted to the
// renderers. I'll do this in a follow-up.

// Linked-list of roots
var firstScheduledRoot = null;
var lastScheduledRoot = null;

var callbackExpirationTime = NoWork;
var callbackID = void 0;
var isRendering = false;
var nextFlushedRoot = null;
var nextFlushedExpirationTime = NoWork;
var lowestPriorityPendingInteractiveExpirationTime = NoWork;
var hasUnhandledError = false;
var unhandledError = null;

var isBatchingUpdates = false;
var isUnbatchingUpdates = false;

var completedBatches = null;

var originalStartTimeMs = scheduler.unstable_now();
var currentRendererTime = msToExpirationTime(originalStartTimeMs);
var currentSchedulerTime = currentRendererTime;

// Use these to prevent an infinite loop of nested updates
var NESTED_UPDATE_LIMIT = 50;
var nestedUpdateCount = 0;
var lastCommittedRootDuringThisBatch = null;

function recomputeCurrentRendererTime() {
  var currentTimeMs = scheduler.unstable_now() - originalStartTimeMs;
  currentRendererTime = msToExpirationTime(currentTimeMs);
}

function scheduleCallbackWithExpirationTime(root, expirationTime) {
  if (callbackExpirationTime !== NoWork) {
    // A callback is already scheduled. Check its expiration time (timeout).
    if (expirationTime < callbackExpirationTime) {
      // Existing callback has sufficient timeout. Exit.
      return;
    } else {
      if (callbackID !== null) {
        // Existing callback has insufficient timeout. Cancel and schedule a
        // new one.
        scheduler.unstable_cancelCallback(callbackID);
      }
    }
    // The request callback timer is already running. Don't start a new one.
  } else {
    startRequestCallbackTimer();
  }

  callbackExpirationTime = expirationTime;
  var currentMs = scheduler.unstable_now() - originalStartTimeMs;
  var expirationTimeMs = expirationTimeToMs(expirationTime);
  var timeout = expirationTimeMs - currentMs;
  callbackID = scheduler.unstable_scheduleCallback(performAsyncWork, { timeout: timeout });
}

// For every call to renderRoot, one of onFatal, onComplete, onSuspend, and
// onYield is called upon exiting. We use these in lieu of returning a tuple.
// I've also chosen not to inline them into renderRoot because these will
// eventually be lifted into the renderer.
function onFatal(root) {
  root.finishedWork = null;
}

function onComplete(root, finishedWork, expirationTime) {
  root.pendingCommitExpirationTime = expirationTime;
  root.finishedWork = finishedWork;
}

function onSuspend(root, finishedWork, suspendedExpirationTime, rootExpirationTime, msUntilTimeout) {
  root.expirationTime = rootExpirationTime;
  if (msUntilTimeout === 0 && !shouldYieldToRenderer()) {
    // Don't wait an additional tick. Commit the tree immediately.
    root.pendingCommitExpirationTime = suspendedExpirationTime;
    root.finishedWork = finishedWork;
  } else if (msUntilTimeout > 0) {
    // Wait `msUntilTimeout` milliseconds before committing.
    root.timeoutHandle = scheduleTimeout(onTimeout.bind(null, root, finishedWork, suspendedExpirationTime), msUntilTimeout);
  }
}

function onYield(root) {
  root.finishedWork = null;
}

function onTimeout(root, finishedWork, suspendedExpirationTime) {
  // The root timed out. Commit it.
  root.pendingCommitExpirationTime = suspendedExpirationTime;
  root.finishedWork = finishedWork;
  // Read the current time before entering the commit phase. We can be
  // certain this won't cause tearing related to batching of event updates
  // because we're at the top of a timer event.
  recomputeCurrentRendererTime();
  currentSchedulerTime = currentRendererTime;
  flushRoot(root, suspendedExpirationTime);
}

function onCommit(root, expirationTime) {
  root.expirationTime = expirationTime;
  root.finishedWork = null;
}

function requestCurrentTime() {
  // requestCurrentTime is called by the scheduler to compute an expiration
  // time.
  //
  // Expiration times are computed by adding to the current time (the start
  // time). However, if two updates are scheduled within the same event, we
  // should treat their start times as simultaneous, even if the actual clock
  // time has advanced between the first and second call.

  // In other words, because expiration times determine how updates are batched,
  // we want all updates of like priority that occur within the same event to
  // receive the same expiration time. Otherwise we get tearing.
  //
  // We keep track of two separate times: the current "renderer" time and the
  // current "scheduler" time. The renderer time can be updated whenever; it
  // only exists to minimize the calls performance.now.
  //
  // But the scheduler time can only be updated if there's no pending work, or
  // if we know for certain that we're not in the middle of an event.

  if (isRendering) {
    // We're already rendering. Return the most recently read time.
    return currentSchedulerTime;
  }
  // Check if there's pending work.
  findHighestPriorityRoot();
  if (nextFlushedExpirationTime === NoWork || nextFlushedExpirationTime === Never) {
    // If there's no pending work, or if the pending work is offscreen, we can
    // read the current time without risk of tearing.
    recomputeCurrentRendererTime();
    currentSchedulerTime = currentRendererTime;
    return currentSchedulerTime;
  }
  // There's already pending work. We might be in the middle of a browser
  // event. If we were to read the current time, it could cause multiple updates
  // within the same event to receive different expiration times, leading to
  // tearing. Return the last read time. During the next idle callback, the
  // time will be updated.
  return currentSchedulerTime;
}

// requestWork is called by the scheduler whenever a root receives an update.
// It's up to the renderer to call renderRoot at some point in the future.
function requestWork(root, expirationTime) {
  addRootToSchedule(root, expirationTime);
  if (isRendering) {
    // Prevent reentrancy. Remaining work will be scheduled at the end of
    // the currently rendering batch.
    return;
  }

  if (isBatchingUpdates) {
    // Flush work at the end of the batch.
    if (isUnbatchingUpdates) {
      // ...unless we're inside unbatchedUpdates, in which case we should
      // flush it now.
      nextFlushedRoot = root;
      nextFlushedExpirationTime = Sync;
      performWorkOnRoot(root, Sync, false);
    }
    return;
  }

  // TODO: Get rid of Sync and use current time?
  if (expirationTime === Sync) {
    performSyncWork();
  } else {
    scheduleCallbackWithExpirationTime(root, expirationTime);
  }
}

function addRootToSchedule(root, expirationTime) {
  // Add the root to the schedule.
  // Check if this root is already part of the schedule.
  if (root.nextScheduledRoot === null) {
    // This root is not already scheduled. Add it.
    root.expirationTime = expirationTime;
    if (lastScheduledRoot === null) {
      firstScheduledRoot = lastScheduledRoot = root;
      root.nextScheduledRoot = root;
    } else {
      lastScheduledRoot.nextScheduledRoot = root;
      lastScheduledRoot = root;
      lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;
    }
  } else {
    // This root is already scheduled, but its priority may have increased.
    var remainingExpirationTime = root.expirationTime;
    if (expirationTime > remainingExpirationTime) {
      // Update the priority.
      root.expirationTime = expirationTime;
    }
  }
}

function findHighestPriorityRoot() {
  var highestPriorityWork = NoWork;
  var highestPriorityRoot = null;
  if (lastScheduledRoot !== null) {
    var previousScheduledRoot = lastScheduledRoot;
    var root = firstScheduledRoot;
    while (root !== null) {
      var remainingExpirationTime = root.expirationTime;
      if (remainingExpirationTime === NoWork) {
        // This root no longer has work. Remove it from the scheduler.

        // TODO: This check is redudant, but Flow is confused by the branch
        // below where we set lastScheduledRoot to null, even though we break
        // from the loop right after.
        !(previousScheduledRoot !== null && lastScheduledRoot !== null) ? invariant(false, 'Should have a previous and last root. This error is likely caused by a bug in React. Please file an issue.') : void 0;
        if (root === root.nextScheduledRoot) {
          // This is the only root in the list.
          root.nextScheduledRoot = null;
          firstScheduledRoot = lastScheduledRoot = null;
          break;
        } else if (root === firstScheduledRoot) {
          // This is the first root in the list.
          var next = root.nextScheduledRoot;
          firstScheduledRoot = next;
          lastScheduledRoot.nextScheduledRoot = next;
          root.nextScheduledRoot = null;
        } else if (root === lastScheduledRoot) {
          // This is the last root in the list.
          lastScheduledRoot = previousScheduledRoot;
          lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;
          root.nextScheduledRoot = null;
          break;
        } else {
          previousScheduledRoot.nextScheduledRoot = root.nextScheduledRoot;
          root.nextScheduledRoot = null;
        }
        root = previousScheduledRoot.nextScheduledRoot;
      } else {
        if (remainingExpirationTime > highestPriorityWork) {
          // Update the priority, if it's higher
          highestPriorityWork = remainingExpirationTime;
          highestPriorityRoot = root;
        }
        if (root === lastScheduledRoot) {
          break;
        }
        if (highestPriorityWork === Sync) {
          // Sync is highest priority by definition so
          // we can stop searching.
          break;
        }
        previousScheduledRoot = root;
        root = root.nextScheduledRoot;
      }
    }
  }

  nextFlushedRoot = highestPriorityRoot;
  nextFlushedExpirationTime = highestPriorityWork;
}

// TODO: This wrapper exists because many of the older tests (the ones that use
// flushDeferredPri) rely on the number of times `shouldYield` is called. We
// should get rid of it.
var didYield = false;
function shouldYieldToRenderer() {
  if (didYield) {
    return true;
  }
  if (scheduler.unstable_shouldYield()) {
    didYield = true;
    return true;
  }
  return false;
}

function performAsyncWork() {
  try {
    if (!shouldYieldToRenderer()) {
      // The callback timed out. That means at least one update has expired.
      // Iterate through the root schedule. If they contain expired work, set
      // the next render expiration time to the current time. This has the effect
      // of flushing all expired work in a single batch, instead of flushing each
      // level one at a time.
      if (firstScheduledRoot !== null) {
        recomputeCurrentRendererTime();
        var root = firstScheduledRoot;
        do {
          didExpireAtExpirationTime(root, currentRendererTime);
          // The root schedule is circular, so this is never null.
          root = root.nextScheduledRoot;
        } while (root !== firstScheduledRoot);
      }
    }
    performWork(NoWork, true);
  } finally {
    didYield = false;
  }
}

function performSyncWork() {
  performWork(Sync, false);
}

function performWork(minExpirationTime, isYieldy) {
  // Keep working on roots until there's no more work, or until there's a higher
  // priority event.
  findHighestPriorityRoot();

  if (isYieldy) {
    recomputeCurrentRendererTime();
    currentSchedulerTime = currentRendererTime;

    if (enableUserTimingAPI) {
      var didExpire = nextFlushedExpirationTime > currentRendererTime;
      var timeout = expirationTimeToMs(nextFlushedExpirationTime);
      stopRequestCallbackTimer(didExpire, timeout);
    }

    while (nextFlushedRoot !== null && nextFlushedExpirationTime !== NoWork && minExpirationTime <= nextFlushedExpirationTime && !(didYield && currentRendererTime > nextFlushedExpirationTime)) {
      performWorkOnRoot(nextFlushedRoot, nextFlushedExpirationTime, currentRendererTime > nextFlushedExpirationTime);
      findHighestPriorityRoot();
      recomputeCurrentRendererTime();
      currentSchedulerTime = currentRendererTime;
    }
  } else {
    while (nextFlushedRoot !== null && nextFlushedExpirationTime !== NoWork && minExpirationTime <= nextFlushedExpirationTime) {
      performWorkOnRoot(nextFlushedRoot, nextFlushedExpirationTime, false);
      findHighestPriorityRoot();
    }
  }

  // We're done flushing work. Either we ran out of time in this callback,
  // or there's no more work left with sufficient priority.

  // If we're inside a callback, set this to false since we just completed it.
  if (isYieldy) {
    callbackExpirationTime = NoWork;
    callbackID = null;
  }
  // If there's work left over, schedule a new callback.
  if (nextFlushedExpirationTime !== NoWork) {
    scheduleCallbackWithExpirationTime(nextFlushedRoot, nextFlushedExpirationTime);
  }

  // Clean-up.
  finishRendering();
}

function flushRoot(root, expirationTime) {
  !!isRendering ? invariant(false, 'work.commit(): Cannot commit while already rendering. This likely means you attempted to commit from inside a lifecycle method.') : void 0;
  // Perform work on root as if the given expiration time is the current time.
  // This has the effect of synchronously flushing all work up to and
  // including the given time.
  nextFlushedRoot = root;
  nextFlushedExpirationTime = expirationTime;
  performWorkOnRoot(root, expirationTime, false);
  // Flush any sync work that was scheduled by lifecycles
  performSyncWork();
}

function finishRendering() {
  nestedUpdateCount = 0;
  lastCommittedRootDuringThisBatch = null;

  if (completedBatches !== null) {
    var batches = completedBatches;
    completedBatches = null;
    for (var i = 0; i < batches.length; i++) {
      var batch = batches[i];
      try {
        batch._onComplete();
      } catch (error) {
        if (!hasUnhandledError) {
          hasUnhandledError = true;
          unhandledError = error;
        }
      }
    }
  }

  if (hasUnhandledError) {
    var error = unhandledError;
    unhandledError = null;
    hasUnhandledError = false;
    throw error;
  }
}

function performWorkOnRoot(root, expirationTime, isYieldy) {
  !!isRendering ? invariant(false, 'performWorkOnRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;

  isRendering = true;

  // Check if this is async work or sync/expired work.
  if (!isYieldy) {
    // Flush work without yielding.
    // TODO: Non-yieldy work does not necessarily imply expired work. A renderer
    // may want to perform some work without yielding, but also without
    // requiring the root to complete (by triggering placeholders).

    var finishedWork = root.finishedWork;
    if (finishedWork !== null) {
      // This root is already complete. We can commit it.
      completeRoot(root, finishedWork, expirationTime);
    } else {
      root.finishedWork = null;
      // If this root previously suspended, clear its existing timeout, since
      // we're about to try rendering again.
      var timeoutHandle = root.timeoutHandle;
      if (timeoutHandle !== noTimeout) {
        root.timeoutHandle = noTimeout;
        // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above
        cancelTimeout(timeoutHandle);
      }
      renderRoot(root, isYieldy);
      finishedWork = root.finishedWork;
      if (finishedWork !== null) {
        // We've completed the root. Commit it.
        completeRoot(root, finishedWork, expirationTime);
      }
    }
  } else {
    // Flush async work.
    var _finishedWork = root.finishedWork;
    if (_finishedWork !== null) {
      // This root is already complete. We can commit it.
      completeRoot(root, _finishedWork, expirationTime);
    } else {
      root.finishedWork = null;
      // If this root previously suspended, clear its existing timeout, since
      // we're about to try rendering again.
      var _timeoutHandle = root.timeoutHandle;
      if (_timeoutHandle !== noTimeout) {
        root.timeoutHandle = noTimeout;
        // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above
        cancelTimeout(_timeoutHandle);
      }
      renderRoot(root, isYieldy);
      _finishedWork = root.finishedWork;
      if (_finishedWork !== null) {
        // We've completed the root. Check the if we should yield one more time
        // before committing.
        if (!shouldYieldToRenderer()) {
          // Still time left. Commit the root.
          completeRoot(root, _finishedWork, expirationTime);
        } else {
          // There's no time left. Mark this root as complete. We'll come
          // back and commit it later.
          root.finishedWork = _finishedWork;
        }
      }
    }
  }

  isRendering = false;
}

function completeRoot(root, finishedWork, expirationTime) {
  // Check if there's a batch that matches this expiration time.
  var firstBatch = root.firstBatch;
  if (firstBatch !== null && firstBatch._expirationTime >= expirationTime) {
    if (completedBatches === null) {
      completedBatches = [firstBatch];
    } else {
      completedBatches.push(firstBatch);
    }
    if (firstBatch._defer) {
      // This root is blocked from committing by a batch. Unschedule it until
      // we receive another update.
      root.finishedWork = finishedWork;
      root.expirationTime = NoWork;
      return;
    }
  }

  // Commit the root.
  root.finishedWork = null;

  // Check if this is a nested update (a sync update scheduled during the
  // commit phase).
  if (root === lastCommittedRootDuringThisBatch) {
    // If the next root is the same as the previous root, this is a nested
    // update. To prevent an infinite loop, increment the nested update count.
    nestedUpdateCount++;
  } else {
    // Reset whenever we switch roots.
    lastCommittedRootDuringThisBatch = root;
    nestedUpdateCount = 0;
  }
  scheduler.unstable_runWithPriority(scheduler.unstable_ImmediatePriority, function () {
    commitRoot(root, finishedWork);
  });
}

function onUncaughtError(error) {
  !(nextFlushedRoot !== null) ? invariant(false, 'Should be working on a root. This error is likely caused by a bug in React. Please file an issue.') : void 0;
  // Unschedule this root so we don't work on it again until there's
  // another update.
  nextFlushedRoot.expirationTime = NoWork;
  if (!hasUnhandledError) {
    hasUnhandledError = true;
    unhandledError = error;
  }
}

// TODO: Batching should be implemented at the renderer level, not inside
// the reconciler.
function batchedUpdates$1(fn, a) {
  var previousIsBatchingUpdates = isBatchingUpdates;
  isBatchingUpdates = true;
  try {
    return fn(a);
  } finally {
    isBatchingUpdates = previousIsBatchingUpdates;
    if (!isBatchingUpdates && !isRendering) {
      performSyncWork();
    }
  }
}

// TODO: Batching should be implemented at the renderer level, not inside
// the reconciler.
function unbatchedUpdates(fn, a) {
  if (isBatchingUpdates && !isUnbatchingUpdates) {
    isUnbatchingUpdates = true;
    try {
      return fn(a);
    } finally {
      isUnbatchingUpdates = false;
    }
  }
  return fn(a);
}

// TODO: Batching should be implemented at the renderer level, not within
// the reconciler.
function flushSync(fn, a) {
  !!isRendering ? invariant(false, 'flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.') : void 0;
  var previousIsBatchingUpdates = isBatchingUpdates;
  isBatchingUpdates = true;
  try {
    return syncUpdates(fn, a);
  } finally {
    isBatchingUpdates = previousIsBatchingUpdates;
    performSyncWork();
  }
}

function interactiveUpdates$1(fn, a, b) {
  // If there are any pending interactive updates, synchronously flush them.
  // This needs to happen before we read any handlers, because the effect of
  // the previous event may influence which handlers are called during
  // this event.
  if (!isBatchingUpdates && !isRendering && lowestPriorityPendingInteractiveExpirationTime !== NoWork) {
    // Synchronously flush pending interactive updates.
    performWork(lowestPriorityPendingInteractiveExpirationTime, false);
    lowestPriorityPendingInteractiveExpirationTime = NoWork;
  }
  var previousIsBatchingUpdates = isBatchingUpdates;
  isBatchingUpdates = true;
  try {
    return scheduler.unstable_runWithPriority(scheduler.unstable_UserBlockingPriority, function () {
      return fn(a, b);
    });
  } finally {
    isBatchingUpdates = previousIsBatchingUpdates;
    if (!isBatchingUpdates && !isRendering) {
      performSyncWork();
    }
  }
}

function flushInteractiveUpdates$1() {
  if (!isRendering && lowestPriorityPendingInteractiveExpirationTime !== NoWork) {
    // Synchronously flush pending interactive updates.
    performWork(lowestPriorityPendingInteractiveExpirationTime, false);
    lowestPriorityPendingInteractiveExpirationTime = NoWork;
  }
}

function flushControlled(fn) {
  var previousIsBatchingUpdates = isBatchingUpdates;
  isBatchingUpdates = true;
  try {
    syncUpdates(fn);
  } finally {
    isBatchingUpdates = previousIsBatchingUpdates;
    if (!isBatchingUpdates && !isRendering) {
      performSyncWork();
    }
  }
}

// 0 is PROD, 1 is DEV.
// Might add PROFILE later.


var didWarnAboutNestedUpdates = void 0;
var didWarnAboutFindNodeInStrictMode = void 0;

{
  didWarnAboutNestedUpdates = false;
  didWarnAboutFindNodeInStrictMode = {};
}

function getContextForSubtree(parentComponent) {
  if (!parentComponent) {
    return emptyContextObject;
  }

  var fiber = get(parentComponent);
  var parentContext = findCurrentUnmaskedContext(fiber);

  if (fiber.tag === ClassComponent) {
    var Component = fiber.type;
    if (isContextProvider(Component)) {
      return processChildContext(fiber, Component, parentContext);
    }
  }

  return parentContext;
}

function scheduleRootUpdate(current$$1, element, expirationTime, callback) {
  {
    if (phase === 'render' && current !== null && !didWarnAboutNestedUpdates) {
      didWarnAboutNestedUpdates = true;
      warningWithoutStack$1(false, 'Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\n\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');
    }
  }

  var update = createUpdate(expirationTime);
  // Caution: React DevTools currently depends on this property
  // being called "element".
  update.payload = { element: element };

  callback = callback === undefined ? null : callback;
  if (callback !== null) {
    !(typeof callback === 'function') ? warningWithoutStack$1(false, 'render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback) : void 0;
    update.callback = callback;
  }

  flushPassiveEffects();
  enqueueUpdate(current$$1, update);
  scheduleWork(current$$1, expirationTime);

  return expirationTime;
}

function updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, callback) {
  // TODO: If this is a nested container, this won't be the root.
  var current$$1 = container.current;

  {
    if (ReactFiberInstrumentation_1.debugTool) {
      if (current$$1.alternate === null) {
        ReactFiberInstrumentation_1.debugTool.onMountContainer(container);
      } else if (element === null) {
        ReactFiberInstrumentation_1.debugTool.onUnmountContainer(container);
      } else {
        ReactFiberInstrumentation_1.debugTool.onUpdateContainer(container);
      }
    }
  }

  var context = getContextForSubtree(parentComponent);
  if (container.context === null) {
    container.context = context;
  } else {
    container.pendingContext = context;
  }

  return scheduleRootUpdate(current$$1, element, expirationTime, callback);
}

function findHostInstance(component) {
  var fiber = get(component);
  if (fiber === undefined) {
    if (typeof component.render === 'function') {
      invariant(false, 'Unable to find node on an unmounted component.');
    } else {
      invariant(false, 'Argument appears to not be a ReactComponent. Keys: %s', Object.keys(component));
    }
  }
  var hostFiber = findCurrentHostFiber(fiber);
  if (hostFiber === null) {
    return null;
  }
  return hostFiber.stateNode;
}

function findHostInstanceWithWarning(component, methodName) {
  {
    var fiber = get(component);
    if (fiber === undefined) {
      if (typeof component.render === 'function') {
        invariant(false, 'Unable to find node on an unmounted component.');
      } else {
        invariant(false, 'Argument appears to not be a ReactComponent. Keys: %s', Object.keys(component));
      }
    }
    var hostFiber = findCurrentHostFiber(fiber);
    if (hostFiber === null) {
      return null;
    }
    if (hostFiber.mode & StrictMode) {
      var componentName = getComponentName(fiber.type) || 'Component';
      if (!didWarnAboutFindNodeInStrictMode[componentName]) {
        didWarnAboutFindNodeInStrictMode[componentName] = true;
        if (fiber.mode & StrictMode) {
          warningWithoutStack$1(false, '%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference.' + '\n%s' + '\n\nLearn more about using refs safely here:' + '\nhttps://fb.me/react-strict-mode-find-node', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));
        } else {
          warningWithoutStack$1(false, '%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference.' + '\n%s' + '\n\nLearn more about using refs safely here:' + '\nhttps://fb.me/react-strict-mode-find-node', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));
        }
      }
    }
    return hostFiber.stateNode;
  }
  return findHostInstance(component);
}

function createContainer(containerInfo, isConcurrent, hydrate) {
  return createFiberRoot(containerInfo, isConcurrent, hydrate);
}

function updateContainer(element, container, parentComponent, callback) {
  var current$$1 = container.current;
  var currentTime = requestCurrentTime();
  var expirationTime = computeExpirationForFiber(currentTime, current$$1);
  return updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, callback);
}

function getPublicRootInstance(container) {
  var containerFiber = container.current;
  if (!containerFiber.child) {
    return null;
  }
  switch (containerFiber.child.tag) {
    case HostComponent:
      return getPublicInstance(containerFiber.child.stateNode);
    default:
      return containerFiber.child.stateNode;
  }
}

function findHostInstanceWithNoPortals(fiber) {
  var hostFiber = findCurrentHostFiberWithNoPortals(fiber);
  if (hostFiber === null) {
    return null;
  }
  return hostFiber.stateNode;
}

var overrideProps = null;

{
  var copyWithSetImpl = function (obj, path, idx, value) {
    if (idx >= path.length) {
      return value;
    }
    var key = path[idx];
    var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);
    // $FlowFixMe number or string is fine here
    updated[key] = copyWithSetImpl(obj[key], path, idx + 1, value);
    return updated;
  };

  var copyWithSet = function (obj, path, value) {
    return copyWithSetImpl(obj, path, 0, value);
  };

  // Support DevTools props for function components, forwardRef, memo, host components, etc.
  overrideProps = function (fiber, path, value) {
    flushPassiveEffects();
    fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);
    if (fiber.alternate) {
      fiber.alternate.pendingProps = fiber.pendingProps;
    }
    scheduleWork(fiber, Sync);
  };
}

function injectIntoDevTools(devToolsConfig) {
  var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;
  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;


  return injectInternals(_assign({}, devToolsConfig, {
    overrideProps: overrideProps,
    currentDispatcherRef: ReactCurrentDispatcher,
    findHostInstanceByFiber: function (fiber) {
      var hostFiber = findCurrentHostFiber(fiber);
      if (hostFiber === null) {
        return null;
      }
      return hostFiber.stateNode;
    },
    findFiberByHostInstance: function (instance) {
      if (!findFiberByHostInstance) {
        // Might not be implemented by the renderer.
        return null;
      }
      return findFiberByHostInstance(instance);
    }
  }));
}

// This file intentionally does *not* have the Flow annotation.
// Don't add it. See `./inline-typed.js` for an explanation.

function createPortal$1(children, containerInfo,
// TODO: figure out the API for cross-renderer implementation.
implementation) {
  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  return {
    // This tag allow us to uniquely identify this as a React Portal
    $$typeof: REACT_PORTAL_TYPE,
    key: key == null ? null : '' + key,
    children: children,
    containerInfo: containerInfo,
    implementation: implementation
  };
}

// TODO: this is special because it gets imported during build.

var ReactVersion = '16.8.5';

// TODO: This type is shared between the reconciler and ReactDOM, but will
// eventually be lifted out to the renderer.

var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;

var topLevelUpdateWarnings = void 0;
var warnOnInvalidCallback = void 0;
var didWarnAboutUnstableCreatePortal = false;

{
  if (typeof Map !== 'function' ||
  // $FlowIssue Flow incorrectly thinks Map has no prototype
  Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' ||
  // $FlowIssue Flow incorrectly thinks Set has no prototype
  Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {
    warningWithoutStack$1(false, 'React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
  }

  topLevelUpdateWarnings = function (container) {
    if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {
      var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);
      if (hostInstance) {
        !(hostInstance.parentNode === container) ? warningWithoutStack$1(false, 'render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.') : void 0;
      }
    }

    var isRootRenderedBySomeReact = !!container._reactRootContainer;
    var rootEl = getReactRootElementInContainer(container);
    var hasNonRootReactChild = !!(rootEl && getInstanceFromNode$1(rootEl));

    !(!hasNonRootReactChild || isRootRenderedBySomeReact) ? warningWithoutStack$1(false, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;

    !(container.nodeType !== ELEMENT_NODE || !container.tagName || container.tagName.toUpperCase() !== 'BODY') ? warningWithoutStack$1(false, 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;
  };

  warnOnInvalidCallback = function (callback, callerName) {
    !(callback === null || typeof callback === 'function') ? warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback) : void 0;
  };
}

setRestoreImplementation(restoreControlledState$1);

function ReactBatch(root) {
  var expirationTime = computeUniqueAsyncExpiration();
  this._expirationTime = expirationTime;
  this._root = root;
  this._next = null;
  this._callbacks = null;
  this._didComplete = false;
  this._hasChildren = false;
  this._children = null;
  this._defer = true;
}
ReactBatch.prototype.render = function (children) {
  !this._defer ? invariant(false, 'batch.render: Cannot render a batch that already committed.') : void 0;
  this._hasChildren = true;
  this._children = children;
  var internalRoot = this._root._internalRoot;
  var expirationTime = this._expirationTime;
  var work = new ReactWork();
  updateContainerAtExpirationTime(children, internalRoot, null, expirationTime, work._onCommit);
  return work;
};
ReactBatch.prototype.then = function (onComplete) {
  if (this._didComplete) {
    onComplete();
    return;
  }
  var callbacks = this._callbacks;
  if (callbacks === null) {
    callbacks = this._callbacks = [];
  }
  callbacks.push(onComplete);
};
ReactBatch.prototype.commit = function () {
  var internalRoot = this._root._internalRoot;
  var firstBatch = internalRoot.firstBatch;
  !(this._defer && firstBatch !== null) ? invariant(false, 'batch.commit: Cannot commit a batch multiple times.') : void 0;

  if (!this._hasChildren) {
    // This batch is empty. Return.
    this._next = null;
    this._defer = false;
    return;
  }

  var expirationTime = this._expirationTime;

  // Ensure this is the first batch in the list.
  if (firstBatch !== this) {
    // This batch is not the earliest batch. We need to move it to the front.
    // Update its expiration time to be the expiration time of the earliest
    // batch, so that we can flush it without flushing the other batches.
    if (this._hasChildren) {
      expirationTime = this._expirationTime = firstBatch._expirationTime;
      // Rendering this batch again ensures its children will be the final state
      // when we flush (updates are processed in insertion order: last
      // update wins).
      // TODO: This forces a restart. Should we print a warning?
      this.render(this._children);
    }

    // Remove the batch from the list.
    var previous = null;
    var batch = firstBatch;
    while (batch !== this) {
      previous = batch;
      batch = batch._next;
    }
    !(previous !== null) ? invariant(false, 'batch.commit: Cannot commit a batch multiple times.') : void 0;
    previous._next = batch._next;

    // Add it to the front.
    this._next = firstBatch;
    firstBatch = internalRoot.firstBatch = this;
  }

  // Synchronously flush all the work up to this batch's expiration time.
  this._defer = false;
  flushRoot(internalRoot, expirationTime);

  // Pop the batch from the list.
  var next = this._next;
  this._next = null;
  firstBatch = internalRoot.firstBatch = next;

  // Append the next earliest batch's children to the update queue.
  if (firstBatch !== null && firstBatch._hasChildren) {
    firstBatch.render(firstBatch._children);
  }
};
ReactBatch.prototype._onComplete = function () {
  if (this._didComplete) {
    return;
  }
  this._didComplete = true;
  var callbacks = this._callbacks;
  if (callbacks === null) {
    return;
  }
  // TODO: Error handling.
  for (var i = 0; i < callbacks.length; i++) {
    var _callback = callbacks[i];
    _callback();
  }
};

function ReactWork() {
  this._callbacks = null;
  this._didCommit = false;
  // TODO: Avoid need to bind by replacing callbacks in the update queue with
  // list of Work objects.
  this._onCommit = this._onCommit.bind(this);
}
ReactWork.prototype.then = function (onCommit) {
  if (this._didCommit) {
    onCommit();
    return;
  }
  var callbacks = this._callbacks;
  if (callbacks === null) {
    callbacks = this._callbacks = [];
  }
  callbacks.push(onCommit);
};
ReactWork.prototype._onCommit = function () {
  if (this._didCommit) {
    return;
  }
  this._didCommit = true;
  var callbacks = this._callbacks;
  if (callbacks === null) {
    return;
  }
  // TODO: Error handling.
  for (var i = 0; i < callbacks.length; i++) {
    var _callback2 = callbacks[i];
    !(typeof _callback2 === 'function') ? invariant(false, 'Invalid argument passed as callback. Expected a function. Instead received: %s', _callback2) : void 0;
    _callback2();
  }
};

function ReactRoot(container, isConcurrent, hydrate) {
  var root = createContainer(container, isConcurrent, hydrate);
  this._internalRoot = root;
}
ReactRoot.prototype.render = function (children, callback) {
  var root = this._internalRoot;
  var work = new ReactWork();
  callback = callback === undefined ? null : callback;
  {
    warnOnInvalidCallback(callback, 'render');
  }
  if (callback !== null) {
    work.then(callback);
  }
  updateContainer(children, root, null, work._onCommit);
  return work;
};
ReactRoot.prototype.unmount = function (callback) {
  var root = this._internalRoot;
  var work = new ReactWork();
  callback = callback === undefined ? null : callback;
  {
    warnOnInvalidCallback(callback, 'render');
  }
  if (callback !== null) {
    work.then(callback);
  }
  updateContainer(null, root, null, work._onCommit);
  return work;
};
ReactRoot.prototype.legacy_renderSubtreeIntoContainer = function (parentComponent, children, callback) {
  var root = this._internalRoot;
  var work = new ReactWork();
  callback = callback === undefined ? null : callback;
  {
    warnOnInvalidCallback(callback, 'render');
  }
  if (callback !== null) {
    work.then(callback);
  }
  updateContainer(children, root, parentComponent, work._onCommit);
  return work;
};
ReactRoot.prototype.createBatch = function () {
  var batch = new ReactBatch(this);
  var expirationTime = batch._expirationTime;

  var internalRoot = this._internalRoot;
  var firstBatch = internalRoot.firstBatch;
  if (firstBatch === null) {
    internalRoot.firstBatch = batch;
    batch._next = null;
  } else {
    // Insert sorted by expiration time then insertion order
    var insertAfter = null;
    var insertBefore = firstBatch;
    while (insertBefore !== null && insertBefore._expirationTime >= expirationTime) {
      insertAfter = insertBefore;
      insertBefore = insertBefore._next;
    }
    batch._next = insertBefore;
    if (insertAfter !== null) {
      insertAfter._next = batch;
    }
  }

  return batch;
};

/**
 * True if the supplied DOM node is a valid node element.
 *
 * @param {?DOMElement} node The candidate DOM node.
 * @return {boolean} True if the DOM is a valid DOM node.
 * @internal
 */
function isValidContainer(node) {
  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));
}

function getReactRootElementInContainer(container) {
  if (!container) {
    return null;
  }

  if (container.nodeType === DOCUMENT_NODE) {
    return container.documentElement;
  } else {
    return container.firstChild;
  }
}

function shouldHydrateDueToLegacyHeuristic(container) {
  var rootElement = getReactRootElementInContainer(container);
  return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));
}

setBatchingImplementation(batchedUpdates$1, interactiveUpdates$1, flushInteractiveUpdates$1);

var warnedAboutHydrateAPI = false;

function legacyCreateRootFromDOMContainer(container, forceHydrate) {
  var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container);
  // First clear any existing content.
  if (!shouldHydrate) {
    var warned = false;
    var rootSibling = void 0;
    while (rootSibling = container.lastChild) {
      {
        if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {
          warned = true;
          warningWithoutStack$1(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');
        }
      }
      container.removeChild(rootSibling);
    }
  }
  {
    if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {
      warnedAboutHydrateAPI = true;
      lowPriorityWarning$1(false, 'render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v17. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');
    }
  }
  // Legacy roots are not async by default.
  var isConcurrent = false;
  return new ReactRoot(container, isConcurrent, shouldHydrate);
}

function legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {
  {
    topLevelUpdateWarnings(container);
  }

  // TODO: Without `any` type, Flow says "Property cannot be accessed on any
  // member of intersection type." Whyyyyyy.
  var root = container._reactRootContainer;
  if (!root) {
    // Initial mount
    root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);
    if (typeof callback === 'function') {
      var originalCallback = callback;
      callback = function () {
        var instance = getPublicRootInstance(root._internalRoot);
        originalCallback.call(instance);
      };
    }
    // Initial mount should not be batched.
    unbatchedUpdates(function () {
      if (parentComponent != null) {
        root.legacy_renderSubtreeIntoContainer(parentComponent, children, callback);
      } else {
        root.render(children, callback);
      }
    });
  } else {
    if (typeof callback === 'function') {
      var _originalCallback = callback;
      callback = function () {
        var instance = getPublicRootInstance(root._internalRoot);
        _originalCallback.call(instance);
      };
    }
    // Update
    if (parentComponent != null) {
      root.legacy_renderSubtreeIntoContainer(parentComponent, children, callback);
    } else {
      root.render(children, callback);
    }
  }
  return getPublicRootInstance(root._internalRoot);
}

function createPortal$$1(children, container) {
  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;

  !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;
  // TODO: pass ReactDOM portal implementation as third argument
  return createPortal$1(children, container, null, key);
}

var ReactDOM = {
  createPortal: createPortal$$1,

  findDOMNode: function (componentOrElement) {
    {
      var owner = ReactCurrentOwner.current;
      if (owner !== null && owner.stateNode !== null) {
        var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;
        !warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component') : void 0;
        owner.stateNode._warnedAboutRefsInRender = true;
      }
    }
    if (componentOrElement == null) {
      return null;
    }
    if (componentOrElement.nodeType === ELEMENT_NODE) {
      return componentOrElement;
    }
    {
      return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');
    }
    return findHostInstance(componentOrElement);
  },
  hydrate: function (element, container, callback) {
    !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;
    {
      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;
    }
    // TODO: throw or warn if we couldn't hydrate?
    return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);
  },
  render: function (element, container, callback) {
    !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;
    {
      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. ' + 'Did you mean to call root.render(element)?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;
    }
    return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);
  },
  unstable_renderSubtreeIntoContainer: function (parentComponent, element, containerNode, callback) {
    !isValidContainer(containerNode) ? invariant(false, 'Target container is not a DOM element.') : void 0;
    !(parentComponent != null && has(parentComponent)) ? invariant(false, 'parentComponent must be a valid React Component') : void 0;
    return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);
  },
  unmountComponentAtNode: function (container) {
    !isValidContainer(container) ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : void 0;

    {
      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. Did you mean to call root.unmount()?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;
    }

    if (container._reactRootContainer) {
      {
        var rootEl = getReactRootElementInContainer(container);
        var renderedByDifferentReact = rootEl && !getInstanceFromNode$1(rootEl);
        !!renderedByDifferentReact ? warningWithoutStack$1(false, "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by another copy of React.') : void 0;
      }

      // Unmount should not be batched.
      unbatchedUpdates(function () {
        legacyRenderSubtreeIntoContainer(null, null, container, false, function () {
          container._reactRootContainer = null;
        });
      });
      // If you call unmountComponentAtNode twice in quick succession, you'll
      // get `true` twice. That's probably fine?
      return true;
    } else {
      {
        var _rootEl = getReactRootElementInContainer(container);
        var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode$1(_rootEl));

        // Check if the container itself is a React root node.
        var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;

        !!hasNonRootReactChild ? warningWithoutStack$1(false, "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
      }

      return false;
    }
  },


  // Temporary alias since we already shipped React 16 RC with it.
  // TODO: remove in React 17.
  unstable_createPortal: function () {
    if (!didWarnAboutUnstableCreatePortal) {
      didWarnAboutUnstableCreatePortal = true;
      lowPriorityWarning$1(false, 'The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the "unstable_" prefix.');
    }
    return createPortal$$1.apply(undefined, arguments);
  },


  unstable_batchedUpdates: batchedUpdates$1,

  unstable_interactiveUpdates: interactiveUpdates$1,

  flushSync: flushSync,

  unstable_createRoot: createRoot,
  unstable_flushControlled: flushControlled,

  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
    // Keep in sync with ReactDOMUnstableNativeDependencies.js
    // and ReactTestUtils.js. This is an array for better minification.
    Events: [getInstanceFromNode$1, getNodeFromInstance$1, getFiberCurrentPropsFromNode$1, injection.injectEventPluginsByName, eventNameDispatchConfigs, accumulateTwoPhaseDispatches, accumulateDirectDispatches, enqueueStateRestore, restoreStateIfNeeded, dispatchEvent, runEventsInBatch]
  }
};

function createRoot(container, options) {
  var functionName = enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot';
  !isValidContainer(container) ? invariant(false, '%s(...): Target container is not a DOM element.', functionName) : void 0;
  {
    !!container._reactRootContainer ? warningWithoutStack$1(false, 'You are calling ReactDOM.%s() on a container that was previously ' + 'passed to ReactDOM.render(). This is not supported.', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;
    container._reactHasBeenPassedToCreateRootDEV = true;
  }
  var hydrate = options != null && options.hydrate === true;
  return new ReactRoot(container, true, hydrate);
}

if (enableStableConcurrentModeAPIs) {
  ReactDOM.createRoot = createRoot;
  ReactDOM.unstable_createRoot = undefined;
}

var foundDevTools = injectIntoDevTools({
  findFiberByHostInstance: getClosestInstanceFromNode,
  bundleType: 1,
  version: ReactVersion,
  rendererPackageName: 'react-dom'
});

{
  if (!foundDevTools && canUseDOM && window.top === window.self) {
    // If we're in Chrome or Firefox, provide a download link if not installed.
    if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {
      var protocol = window.location.protocol;
      // Don't warn in exotic cases like chrome-extension://.
      if (/^(https?|file):$/.test(protocol)) {
        console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://fb.me/react-devtools' + (protocol === 'file:' ? '\nYou might need to use a local HTTP server (instead of file://): ' + 'https://fb.me/react-devtools-faq' : ''), 'font-weight:bold');
      }
    }
  }
}



var ReactDOM$2 = Object.freeze({
	default: ReactDOM
});

var ReactDOM$3 = ( ReactDOM$2 && ReactDOM ) || ReactDOM$2;

// TODO: decide on the top-level export form.
// This is hacky but makes it work with both Rollup and Jest.
var reactDom = ReactDOM$3.default || ReactDOM$3;

module.exports = reactDom;
  })();
}


/***/ }),

/***/ "mwqp":
/*!**********************!*\
  !*** ./lib/index.js ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "0ZZt");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in react_dom__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return react_dom__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


// tslint:disable:export-name
/* harmony default export */ __webpack_exports__["default"] = (react_dom__WEBPACK_IMPORTED_MODULE_0__);


/***/ }),

/***/ "pXQh":
/*!******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/scheduler/0.13.6/node_modules/scheduler/cjs/scheduler-tracing.development.js ***!
  \******************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v0.13.6
 * scheduler-tracing.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:


// In some cases, StrictMode should also double-render lifecycles.
// This can be confusing for tests though,
// And it can be bad for performance in production.
// This feature flag can be used to control the behavior:


// To preserve the "Pause on caught exceptions" behavior of the debugger, we
// replay the begin phase of a failed component inside invokeGuardedCallback.


// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:


// Gather advanced timing metrics for Profiler subtrees.


// Trace which interactions trigger each commit.
var enableSchedulerTracing = true;

// Only used in www builds.
 // TODO: true? Here it might just be false.

// Only used in www builds.


// Only used in www builds.


// React Fire: prevent the value and checked attributes from syncing
// with their related DOM properties


// These APIs will no longer be "unstable" in the upcoming 16.7 release,
// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.

var DEFAULT_THREAD_ID = 0;

// Counters used to generate unique IDs.
var interactionIDCounter = 0;
var threadIDCounter = 0;

// Set of currently traced interactions.
// Interactions "stack"–
// Meaning that newly traced interactions are appended to the previously active set.
// When an interaction goes out of scope, the previous set (if any) is restored.
exports.__interactionsRef = null;

// Listener(s) to notify when interactions begin and end.
exports.__subscriberRef = null;

if (enableSchedulerTracing) {
  exports.__interactionsRef = {
    current: new Set()
  };
  exports.__subscriberRef = {
    current: null
  };
}

function unstable_clear(callback) {
  if (!enableSchedulerTracing) {
    return callback();
  }

  var prevInteractions = exports.__interactionsRef.current;
  exports.__interactionsRef.current = new Set();

  try {
    return callback();
  } finally {
    exports.__interactionsRef.current = prevInteractions;
  }
}

function unstable_getCurrent() {
  if (!enableSchedulerTracing) {
    return null;
  } else {
    return exports.__interactionsRef.current;
  }
}

function unstable_getThreadID() {
  return ++threadIDCounter;
}

function unstable_trace(name, timestamp, callback) {
  var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;

  if (!enableSchedulerTracing) {
    return callback();
  }

  var interaction = {
    __count: 1,
    id: interactionIDCounter++,
    name: name,
    timestamp: timestamp
  };

  var prevInteractions = exports.__interactionsRef.current;

  // Traced interactions should stack/accumulate.
  // To do that, clone the current interactions.
  // The previous set will be restored upon completion.
  var interactions = new Set(prevInteractions);
  interactions.add(interaction);
  exports.__interactionsRef.current = interactions;

  var subscriber = exports.__subscriberRef.current;
  var returnValue = void 0;

  try {
    if (subscriber !== null) {
      subscriber.onInteractionTraced(interaction);
    }
  } finally {
    try {
      if (subscriber !== null) {
        subscriber.onWorkStarted(interactions, threadID);
      }
    } finally {
      try {
        returnValue = callback();
      } finally {
        exports.__interactionsRef.current = prevInteractions;

        try {
          if (subscriber !== null) {
            subscriber.onWorkStopped(interactions, threadID);
          }
        } finally {
          interaction.__count--;

          // If no async work was scheduled for this interaction,
          // Notify subscribers that it's completed.
          if (subscriber !== null && interaction.__count === 0) {
            subscriber.onInteractionScheduledWorkCompleted(interaction);
          }
        }
      }
    }
  }

  return returnValue;
}

function unstable_wrap(callback) {
  var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;

  if (!enableSchedulerTracing) {
    return callback;
  }

  var wrappedInteractions = exports.__interactionsRef.current;

  var subscriber = exports.__subscriberRef.current;
  if (subscriber !== null) {
    subscriber.onWorkScheduled(wrappedInteractions, threadID);
  }

  // Update the pending async work count for the current interactions.
  // Update after calling subscribers in case of error.
  wrappedInteractions.forEach(function (interaction) {
    interaction.__count++;
  });

  var hasRun = false;

  function wrapped() {
    var prevInteractions = exports.__interactionsRef.current;
    exports.__interactionsRef.current = wrappedInteractions;

    subscriber = exports.__subscriberRef.current;

    try {
      var returnValue = void 0;

      try {
        if (subscriber !== null) {
          subscriber.onWorkStarted(wrappedInteractions, threadID);
        }
      } finally {
        try {
          returnValue = callback.apply(undefined, arguments);
        } finally {
          exports.__interactionsRef.current = prevInteractions;

          if (subscriber !== null) {
            subscriber.onWorkStopped(wrappedInteractions, threadID);
          }
        }
      }

      return returnValue;
    } finally {
      if (!hasRun) {
        // We only expect a wrapped function to be executed once,
        // But in the event that it's executed more than once–
        // Only decrement the outstanding interaction counts once.
        hasRun = true;

        // Update pending async counts for all wrapped interactions.
        // If this was the last scheduled async work for any of them,
        // Mark them as completed.
        wrappedInteractions.forEach(function (interaction) {
          interaction.__count--;

          if (subscriber !== null && interaction.__count === 0) {
            subscriber.onInteractionScheduledWorkCompleted(interaction);
          }
        });
      }
    }
  }

  wrapped.cancel = function cancel() {
    subscriber = exports.__subscriberRef.current;

    try {
      if (subscriber !== null) {
        subscriber.onWorkCanceled(wrappedInteractions, threadID);
      }
    } finally {
      // Update pending async counts for all wrapped interactions.
      // If this was the last scheduled async work for any of them,
      // Mark them as completed.
      wrappedInteractions.forEach(function (interaction) {
        interaction.__count--;

        if (subscriber && interaction.__count === 0) {
          subscriber.onInteractionScheduledWorkCompleted(interaction);
        }
      });
    }
  };

  return wrapped;
}

var subscribers = null;
if (enableSchedulerTracing) {
  subscribers = new Set();
}

function unstable_subscribe(subscriber) {
  if (enableSchedulerTracing) {
    subscribers.add(subscriber);

    if (subscribers.size === 1) {
      exports.__subscriberRef.current = {
        onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,
        onInteractionTraced: onInteractionTraced,
        onWorkCanceled: onWorkCanceled,
        onWorkScheduled: onWorkScheduled,
        onWorkStarted: onWorkStarted,
        onWorkStopped: onWorkStopped
      };
    }
  }
}

function unstable_unsubscribe(subscriber) {
  if (enableSchedulerTracing) {
    subscribers.delete(subscriber);

    if (subscribers.size === 0) {
      exports.__subscriberRef.current = null;
    }
  }
}

function onInteractionTraced(interaction) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onInteractionTraced(interaction);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

function onInteractionScheduledWorkCompleted(interaction) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onInteractionScheduledWorkCompleted(interaction);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

function onWorkScheduled(interactions, threadID) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onWorkScheduled(interactions, threadID);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

function onWorkStarted(interactions, threadID) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onWorkStarted(interactions, threadID);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

function onWorkStopped(interactions, threadID) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onWorkStopped(interactions, threadID);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

function onWorkCanceled(interactions, threadID) {
  var didCatchError = false;
  var caughtError = null;

  subscribers.forEach(function (subscriber) {
    try {
      subscriber.onWorkCanceled(interactions, threadID);
    } catch (error) {
      if (!didCatchError) {
        didCatchError = true;
        caughtError = error;
      }
    }
  });

  if (didCatchError) {
    throw caughtError;
  }
}

exports.unstable_clear = unstable_clear;
exports.unstable_getCurrent = unstable_getCurrent;
exports.unstable_getThreadID = unstable_getThreadID;
exports.unstable_trace = unstable_trace;
exports.unstable_wrap = unstable_wrap;
exports.unstable_subscribe = unstable_subscribe;
exports.unstable_unsubscribe = unstable_unsubscribe;
  })();
}


/***/ }),

/***/ "rfJD":
/*!**********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/scheduler/0.13.6/node_modules/scheduler/cjs/scheduler.development.js ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/** @license React v0.13.6
 * scheduler.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var enableSchedulerDebugging = false;

/* eslint-disable no-var */

// TODO: Use symbols?
var ImmediatePriority = 1;
var UserBlockingPriority = 2;
var NormalPriority = 3;
var LowPriority = 4;
var IdlePriority = 5;

// Max 31 bit integer. The max integer size in V8 for 32-bit systems.
// Math.pow(2, 30) - 1
// 0b111111111111111111111111111111
var maxSigned31BitInt = 1073741823;

// Times out immediately
var IMMEDIATE_PRIORITY_TIMEOUT = -1;
// Eventually times out
var USER_BLOCKING_PRIORITY = 250;
var NORMAL_PRIORITY_TIMEOUT = 5000;
var LOW_PRIORITY_TIMEOUT = 10000;
// Never times out
var IDLE_PRIORITY = maxSigned31BitInt;

// Callbacks are stored as a circular, doubly linked list.
var firstCallbackNode = null;

var currentDidTimeout = false;
// Pausing the scheduler is useful for debugging.
var isSchedulerPaused = false;

var currentPriorityLevel = NormalPriority;
var currentEventStartTime = -1;
var currentExpirationTime = -1;

// This is set when a callback is being executed, to prevent re-entrancy.
var isExecutingCallback = false;

var isHostCallbackScheduled = false;

var hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';

function ensureHostCallbackIsScheduled() {
  if (isExecutingCallback) {
    // Don't schedule work yet; wait until the next time we yield.
    return;
  }
  // Schedule the host callback using the earliest expiration in the list.
  var expirationTime = firstCallbackNode.expirationTime;
  if (!isHostCallbackScheduled) {
    isHostCallbackScheduled = true;
  } else {
    // Cancel the existing host callback.
    cancelHostCallback();
  }
  requestHostCallback(flushWork, expirationTime);
}

function flushFirstCallback() {
  var flushedNode = firstCallbackNode;

  // Remove the node from the list before calling the callback. That way the
  // list is in a consistent state even if the callback throws.
  var next = firstCallbackNode.next;
  if (firstCallbackNode === next) {
    // This is the last callback in the list.
    firstCallbackNode = null;
    next = null;
  } else {
    var lastCallbackNode = firstCallbackNode.previous;
    firstCallbackNode = lastCallbackNode.next = next;
    next.previous = lastCallbackNode;
  }

  flushedNode.next = flushedNode.previous = null;

  // Now it's safe to call the callback.
  var callback = flushedNode.callback;
  var expirationTime = flushedNode.expirationTime;
  var priorityLevel = flushedNode.priorityLevel;
  var previousPriorityLevel = currentPriorityLevel;
  var previousExpirationTime = currentExpirationTime;
  currentPriorityLevel = priorityLevel;
  currentExpirationTime = expirationTime;
  var continuationCallback;
  try {
    continuationCallback = callback();
  } finally {
    currentPriorityLevel = previousPriorityLevel;
    currentExpirationTime = previousExpirationTime;
  }

  // A callback may return a continuation. The continuation should be scheduled
  // with the same priority and expiration as the just-finished callback.
  if (typeof continuationCallback === 'function') {
    var continuationNode = {
      callback: continuationCallback,
      priorityLevel: priorityLevel,
      expirationTime: expirationTime,
      next: null,
      previous: null
    };

    // Insert the new callback into the list, sorted by its expiration. This is
    // almost the same as the code in `scheduleCallback`, except the callback
    // is inserted into the list *before* callbacks of equal expiration instead
    // of after.
    if (firstCallbackNode === null) {
      // This is the first callback in the list.
      firstCallbackNode = continuationNode.next = continuationNode.previous = continuationNode;
    } else {
      var nextAfterContinuation = null;
      var node = firstCallbackNode;
      do {
        if (node.expirationTime >= expirationTime) {
          // This callback expires at or after the continuation. We will insert
          // the continuation *before* this callback.
          nextAfterContinuation = node;
          break;
        }
        node = node.next;
      } while (node !== firstCallbackNode);

      if (nextAfterContinuation === null) {
        // No equal or lower priority callback was found, which means the new
        // callback is the lowest priority callback in the list.
        nextAfterContinuation = firstCallbackNode;
      } else if (nextAfterContinuation === firstCallbackNode) {
        // The new callback is the highest priority callback in the list.
        firstCallbackNode = continuationNode;
        ensureHostCallbackIsScheduled();
      }

      var previous = nextAfterContinuation.previous;
      previous.next = nextAfterContinuation.previous = continuationNode;
      continuationNode.next = nextAfterContinuation;
      continuationNode.previous = previous;
    }
  }
}

function flushImmediateWork() {
  if (
  // Confirm we've exited the outer most event handler
  currentEventStartTime === -1 && firstCallbackNode !== null && firstCallbackNode.priorityLevel === ImmediatePriority) {
    isExecutingCallback = true;
    try {
      do {
        flushFirstCallback();
      } while (
      // Keep flushing until there are no more immediate callbacks
      firstCallbackNode !== null && firstCallbackNode.priorityLevel === ImmediatePriority);
    } finally {
      isExecutingCallback = false;
      if (firstCallbackNode !== null) {
        // There's still work remaining. Request another callback.
        ensureHostCallbackIsScheduled();
      } else {
        isHostCallbackScheduled = false;
      }
    }
  }
}

function flushWork(didTimeout) {
  // Exit right away if we're currently paused

  if (enableSchedulerDebugging && isSchedulerPaused) {
    return;
  }

  isExecutingCallback = true;
  var previousDidTimeout = currentDidTimeout;
  currentDidTimeout = didTimeout;
  try {
    if (didTimeout) {
      // Flush all the expired callbacks without yielding.
      while (firstCallbackNode !== null && !(enableSchedulerDebugging && isSchedulerPaused)) {
        // TODO Wrap in feature flag
        // Read the current time. Flush all the callbacks that expire at or
        // earlier than that time. Then read the current time again and repeat.
        // This optimizes for as few performance.now calls as possible.
        var currentTime = exports.unstable_now();
        if (firstCallbackNode.expirationTime <= currentTime) {
          do {
            flushFirstCallback();
          } while (firstCallbackNode !== null && firstCallbackNode.expirationTime <= currentTime && !(enableSchedulerDebugging && isSchedulerPaused));
          continue;
        }
        break;
      }
    } else {
      // Keep flushing callbacks until we run out of time in the frame.
      if (firstCallbackNode !== null) {
        do {
          if (enableSchedulerDebugging && isSchedulerPaused) {
            break;
          }
          flushFirstCallback();
        } while (firstCallbackNode !== null && !shouldYieldToHost());
      }
    }
  } finally {
    isExecutingCallback = false;
    currentDidTimeout = previousDidTimeout;
    if (firstCallbackNode !== null) {
      // There's still work remaining. Request another callback.
      ensureHostCallbackIsScheduled();
    } else {
      isHostCallbackScheduled = false;
    }
    // Before exiting, flush all the immediate work that was scheduled.
    flushImmediateWork();
  }
}

function unstable_runWithPriority(priorityLevel, eventHandler) {
  switch (priorityLevel) {
    case ImmediatePriority:
    case UserBlockingPriority:
    case NormalPriority:
    case LowPriority:
    case IdlePriority:
      break;
    default:
      priorityLevel = NormalPriority;
  }

  var previousPriorityLevel = currentPriorityLevel;
  var previousEventStartTime = currentEventStartTime;
  currentPriorityLevel = priorityLevel;
  currentEventStartTime = exports.unstable_now();

  try {
    return eventHandler();
  } finally {
    currentPriorityLevel = previousPriorityLevel;
    currentEventStartTime = previousEventStartTime;

    // Before exiting, flush all the immediate work that was scheduled.
    flushImmediateWork();
  }
}

function unstable_next(eventHandler) {
  var priorityLevel = void 0;
  switch (currentPriorityLevel) {
    case ImmediatePriority:
    case UserBlockingPriority:
    case NormalPriority:
      // Shift down to normal priority
      priorityLevel = NormalPriority;
      break;
    default:
      // Anything lower than normal priority should remain at the current level.
      priorityLevel = currentPriorityLevel;
      break;
  }

  var previousPriorityLevel = currentPriorityLevel;
  var previousEventStartTime = currentEventStartTime;
  currentPriorityLevel = priorityLevel;
  currentEventStartTime = exports.unstable_now();

  try {
    return eventHandler();
  } finally {
    currentPriorityLevel = previousPriorityLevel;
    currentEventStartTime = previousEventStartTime;

    // Before exiting, flush all the immediate work that was scheduled.
    flushImmediateWork();
  }
}

function unstable_wrapCallback(callback) {
  var parentPriorityLevel = currentPriorityLevel;
  return function () {
    // This is a fork of runWithPriority, inlined for performance.
    var previousPriorityLevel = currentPriorityLevel;
    var previousEventStartTime = currentEventStartTime;
    currentPriorityLevel = parentPriorityLevel;
    currentEventStartTime = exports.unstable_now();

    try {
      return callback.apply(this, arguments);
    } finally {
      currentPriorityLevel = previousPriorityLevel;
      currentEventStartTime = previousEventStartTime;
      flushImmediateWork();
    }
  };
}

function unstable_scheduleCallback(callback, deprecated_options) {
  var startTime = currentEventStartTime !== -1 ? currentEventStartTime : exports.unstable_now();

  var expirationTime;
  if (typeof deprecated_options === 'object' && deprecated_options !== null && typeof deprecated_options.timeout === 'number') {
    // FIXME: Remove this branch once we lift expiration times out of React.
    expirationTime = startTime + deprecated_options.timeout;
  } else {
    switch (currentPriorityLevel) {
      case ImmediatePriority:
        expirationTime = startTime + IMMEDIATE_PRIORITY_TIMEOUT;
        break;
      case UserBlockingPriority:
        expirationTime = startTime + USER_BLOCKING_PRIORITY;
        break;
      case IdlePriority:
        expirationTime = startTime + IDLE_PRIORITY;
        break;
      case LowPriority:
        expirationTime = startTime + LOW_PRIORITY_TIMEOUT;
        break;
      case NormalPriority:
      default:
        expirationTime = startTime + NORMAL_PRIORITY_TIMEOUT;
    }
  }

  var newNode = {
    callback: callback,
    priorityLevel: currentPriorityLevel,
    expirationTime: expirationTime,
    next: null,
    previous: null
  };

  // Insert the new callback into the list, ordered first by expiration, then
  // by insertion. So the new callback is inserted any other callback with
  // equal expiration.
  if (firstCallbackNode === null) {
    // This is the first callback in the list.
    firstCallbackNode = newNode.next = newNode.previous = newNode;
    ensureHostCallbackIsScheduled();
  } else {
    var next = null;
    var node = firstCallbackNode;
    do {
      if (node.expirationTime > expirationTime) {
        // The new callback expires before this one.
        next = node;
        break;
      }
      node = node.next;
    } while (node !== firstCallbackNode);

    if (next === null) {
      // No callback with a later expiration was found, which means the new
      // callback has the latest expiration in the list.
      next = firstCallbackNode;
    } else if (next === firstCallbackNode) {
      // The new callback has the earliest expiration in the entire list.
      firstCallbackNode = newNode;
      ensureHostCallbackIsScheduled();
    }

    var previous = next.previous;
    previous.next = next.previous = newNode;
    newNode.next = next;
    newNode.previous = previous;
  }

  return newNode;
}

function unstable_pauseExecution() {
  isSchedulerPaused = true;
}

function unstable_continueExecution() {
  isSchedulerPaused = false;
  if (firstCallbackNode !== null) {
    ensureHostCallbackIsScheduled();
  }
}

function unstable_getFirstCallbackNode() {
  return firstCallbackNode;
}

function unstable_cancelCallback(callbackNode) {
  var next = callbackNode.next;
  if (next === null) {
    // Already cancelled.
    return;
  }

  if (next === callbackNode) {
    // This is the only scheduled callback. Clear the list.
    firstCallbackNode = null;
  } else {
    // Remove the callback from its position in the list.
    if (callbackNode === firstCallbackNode) {
      firstCallbackNode = next;
    }
    var previous = callbackNode.previous;
    previous.next = next;
    next.previous = previous;
  }

  callbackNode.next = callbackNode.previous = null;
}

function unstable_getCurrentPriorityLevel() {
  return currentPriorityLevel;
}

function unstable_shouldYield() {
  return !currentDidTimeout && (firstCallbackNode !== null && firstCallbackNode.expirationTime < currentExpirationTime || shouldYieldToHost());
}

// The remaining code is essentially a polyfill for requestIdleCallback. It
// works by scheduling a requestAnimationFrame, storing the time for the start
// of the frame, then scheduling a postMessage which gets scheduled after paint.
// Within the postMessage handler do as much work as possible until time + frame
// rate. By separating the idle call into a separate event tick we ensure that
// layout, paint and other browser work is counted against the available time.
// The frame rate is dynamically adjusted.

// We capture a local reference to any global, in case it gets polyfilled after
// this module is initially evaluated. We want to be using a
// consistent implementation.
var localDate = Date;

// This initialization code may run even on server environments if a component
// just imports ReactDOM (e.g. for findDOMNode). Some environments might not
// have setTimeout or clearTimeout. However, we always expect them to be defined
// on the client. https://github.com/facebook/react/pull/13088
var localSetTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;
var localClearTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;

// We don't expect either of these to necessarily be defined, but we will error
// later if they are missing on the client.
var localRequestAnimationFrame = typeof requestAnimationFrame === 'function' ? requestAnimationFrame : undefined;
var localCancelAnimationFrame = typeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : undefined;

// requestAnimationFrame does not run when the tab is in the background. If
// we're backgrounded we prefer for that work to happen so that the page
// continues to load in the background. So we also schedule a 'setTimeout' as
// a fallback.
// TODO: Need a better heuristic for backgrounded work.
var ANIMATION_FRAME_TIMEOUT = 100;
var rAFID;
var rAFTimeoutID;
var requestAnimationFrameWithTimeout = function (callback) {
  // schedule rAF and also a setTimeout
  rAFID = localRequestAnimationFrame(function (timestamp) {
    // cancel the setTimeout
    localClearTimeout(rAFTimeoutID);
    callback(timestamp);
  });
  rAFTimeoutID = localSetTimeout(function () {
    // cancel the requestAnimationFrame
    localCancelAnimationFrame(rAFID);
    callback(exports.unstable_now());
  }, ANIMATION_FRAME_TIMEOUT);
};

if (hasNativePerformanceNow) {
  var Performance = performance;
  exports.unstable_now = function () {
    return Performance.now();
  };
} else {
  exports.unstable_now = function () {
    return localDate.now();
  };
}

var requestHostCallback;
var cancelHostCallback;
var shouldYieldToHost;

var globalValue = null;
if (typeof window !== 'undefined') {
  globalValue = window;
} else if (typeof global !== 'undefined') {
  globalValue = global;
}

if (globalValue && globalValue._schedMock) {
  // Dynamic injection, only for testing purposes.
  var globalImpl = globalValue._schedMock;
  requestHostCallback = globalImpl[0];
  cancelHostCallback = globalImpl[1];
  shouldYieldToHost = globalImpl[2];
  exports.unstable_now = globalImpl[3];
} else if (
// If Scheduler runs in a non-DOM environment, it falls back to a naive
// implementation using setTimeout.
typeof window === 'undefined' ||
// Check if MessageChannel is supported, too.
typeof MessageChannel !== 'function') {
  // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,
  // fallback to a naive implementation.
  var _callback = null;
  var _flushCallback = function (didTimeout) {
    if (_callback !== null) {
      try {
        _callback(didTimeout);
      } finally {
        _callback = null;
      }
    }
  };
  requestHostCallback = function (cb, ms) {
    if (_callback !== null) {
      // Protect against re-entrancy.
      setTimeout(requestHostCallback, 0, cb);
    } else {
      _callback = cb;
      setTimeout(_flushCallback, 0, false);
    }
  };
  cancelHostCallback = function () {
    _callback = null;
  };
  shouldYieldToHost = function () {
    return false;
  };
} else {
  if (typeof console !== 'undefined') {
    // TODO: Remove fb.me link
    if (typeof localRequestAnimationFrame !== 'function') {
      console.error("This browser doesn't support requestAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
    }
    if (typeof localCancelAnimationFrame !== 'function') {
      console.error("This browser doesn't support cancelAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
    }
  }

  var scheduledHostCallback = null;
  var isMessageEventScheduled = false;
  var timeoutTime = -1;

  var isAnimationFrameScheduled = false;

  var isFlushingHostCallback = false;

  var frameDeadline = 0;
  // We start out assuming that we run at 30fps but then the heuristic tracking
  // will adjust this value to a faster fps if we get more frequent animation
  // frames.
  var previousFrameTime = 33;
  var activeFrameTime = 33;

  shouldYieldToHost = function () {
    return frameDeadline <= exports.unstable_now();
  };

  // We use the postMessage trick to defer idle work until after the repaint.
  var channel = new MessageChannel();
  var port = channel.port2;
  channel.port1.onmessage = function (event) {
    isMessageEventScheduled = false;

    var prevScheduledCallback = scheduledHostCallback;
    var prevTimeoutTime = timeoutTime;
    scheduledHostCallback = null;
    timeoutTime = -1;

    var currentTime = exports.unstable_now();

    var didTimeout = false;
    if (frameDeadline - currentTime <= 0) {
      // There's no time left in this idle period. Check if the callback has
      // a timeout and whether it's been exceeded.
      if (prevTimeoutTime !== -1 && prevTimeoutTime <= currentTime) {
        // Exceeded the timeout. Invoke the callback even though there's no
        // time left.
        didTimeout = true;
      } else {
        // No timeout.
        if (!isAnimationFrameScheduled) {
          // Schedule another animation callback so we retry later.
          isAnimationFrameScheduled = true;
          requestAnimationFrameWithTimeout(animationTick);
        }
        // Exit without invoking the callback.
        scheduledHostCallback = prevScheduledCallback;
        timeoutTime = prevTimeoutTime;
        return;
      }
    }

    if (prevScheduledCallback !== null) {
      isFlushingHostCallback = true;
      try {
        prevScheduledCallback(didTimeout);
      } finally {
        isFlushingHostCallback = false;
      }
    }
  };

  var animationTick = function (rafTime) {
    if (scheduledHostCallback !== null) {
      // Eagerly schedule the next animation callback at the beginning of the
      // frame. If the scheduler queue is not empty at the end of the frame, it
      // will continue flushing inside that callback. If the queue *is* empty,
      // then it will exit immediately. Posting the callback at the start of the
      // frame ensures it's fired within the earliest possible frame. If we
      // waited until the end of the frame to post the callback, we risk the
      // browser skipping a frame and not firing the callback until the frame
      // after that.
      requestAnimationFrameWithTimeout(animationTick);
    } else {
      // No pending work. Exit.
      isAnimationFrameScheduled = false;
      return;
    }

    var nextFrameTime = rafTime - frameDeadline + activeFrameTime;
    if (nextFrameTime < activeFrameTime && previousFrameTime < activeFrameTime) {
      if (nextFrameTime < 8) {
        // Defensive coding. We don't support higher frame rates than 120hz.
        // If the calculated frame time gets lower than 8, it is probably a bug.
        nextFrameTime = 8;
      }
      // If one frame goes long, then the next one can be short to catch up.
      // If two frames are short in a row, then that's an indication that we
      // actually have a higher frame rate than what we're currently optimizing.
      // We adjust our heuristic dynamically accordingly. For example, if we're
      // running on 120hz display or 90hz VR display.
      // Take the max of the two in case one of them was an anomaly due to
      // missed frame deadlines.
      activeFrameTime = nextFrameTime < previousFrameTime ? previousFrameTime : nextFrameTime;
    } else {
      previousFrameTime = nextFrameTime;
    }
    frameDeadline = rafTime + activeFrameTime;
    if (!isMessageEventScheduled) {
      isMessageEventScheduled = true;
      port.postMessage(undefined);
    }
  };

  requestHostCallback = function (callback, absoluteTimeout) {
    scheduledHostCallback = callback;
    timeoutTime = absoluteTimeout;
    if (isFlushingHostCallback || absoluteTimeout < 0) {
      // Don't wait for the next frame. Continue working ASAP, in a new event.
      port.postMessage(undefined);
    } else if (!isAnimationFrameScheduled) {
      // If rAF didn't already schedule one, we need to schedule a frame.
      // TODO: If this rAF doesn't materialize because the browser throttles, we
      // might want to still have setTimeout trigger rIC as a backup to ensure
      // that we keep performing work.
      isAnimationFrameScheduled = true;
      requestAnimationFrameWithTimeout(animationTick);
    }
  };

  cancelHostCallback = function () {
    scheduledHostCallback = null;
    isMessageEventScheduled = false;
    timeoutTime = -1;
  };
}

exports.unstable_ImmediatePriority = ImmediatePriority;
exports.unstable_UserBlockingPriority = UserBlockingPriority;
exports.unstable_NormalPriority = NormalPriority;
exports.unstable_IdlePriority = IdlePriority;
exports.unstable_LowPriority = LowPriority;
exports.unstable_runWithPriority = unstable_runWithPriority;
exports.unstable_next = unstable_next;
exports.unstable_scheduleCallback = unstable_scheduleCallback;
exports.unstable_cancelCallback = unstable_cancelCallback;
exports.unstable_wrapCallback = unstable_wrapCallback;
exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
exports.unstable_shouldYield = unstable_shouldYield;
exports.unstable_continueExecution = unstable_continueExecution;
exports.unstable_pauseExecution = unstable_pauseExecution;
exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;
  })();
}

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

/***/ }),

/***/ "sjay":
/*!*********************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/object-assign/4.1.1/node_modules/object-assign/index.js ***!
  \*********************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ })

/******/ })});;
//# sourceMappingURL=react-dom-16-bundle.js.map


define("17ce0976-e69a-4355-be84-89b69a74717d_0.1.0", ["react","@microsoft/load-themed-styles"], function(__WEBPACK_EXTERNAL_MODULE_cDcd__, __WEBPACK_EXTERNAL_MODULE_jOlS__) { return /******/ (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 = "8k4T");
/******/ })
/************************************************************************/
/******/ ({

/***/ "+4t+":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/index.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: assign, filteredAssign, mapEnumByName, shallowCompare, values, setFocusVisibility, setSSR, Async, AutoScroll, BaseComponent, nullRender, DelayedRender, EventGroup, FabricPerformance, GlobalSettings, KeyCodes, Rectangle, appendFunction, mergeAriaAttributeValues, findIndex, find, createArray, toMatrix, removeIndex, replaceElement, addElementAtIndex, flatten, arraysEqual, asAsync, assertNever, classNamesFunction, isControlled, css, Customizations, Customizer, CustomizerContext, customizable, mergeCustomizations, mergeSettings, mergeScopedSettings, extendComponent, getFirstFocusable, getLastFocusable, getFirstTabbable, getLastTabbable, focusFirstChild, getPreviousElement, getNextElement, isElementVisible, isElementTabbable, isElementFocusZone, isElementFocusSubZone, doesElementContainFocus, shouldWrapFocus, focusAsync, getFocusableByIndexPath, getElementIndexPath, getId, resetIds, hoistMethods, unhoistMethods, hoistStatics, initializeComponentRef, IsFocusVisibleClassName, initializeFocusRects, getInitials, isDirectionalKeyCode, addDirectionalKeyCode, getLanguage, setLanguage, getDistanceBetweenPoints, fitContentToBounds, calculatePrecision, precisionRound, setMemoizeWeakMap, resetMemoizations, memoize, memoizeFunction, merge, isIOS, isMac, hasHorizontalOverflow, hasVerticalOverflow, hasOverflow, baseElementEvents, baseElementProperties, htmlElementProperties, labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, imageProperties, divProperties, getNativeProps, getResourceUrl, setBaseUrl, getRTL, setRTL, getRTLSafeKeyCode, safeRequestAnimationFrame, safeSetTimeout, DATA_IS_SCROLLABLE_ATTRIBUTE, allowScrollOnElement, disableBodyScroll, enableBodyScroll, getScrollbarWidth, findScrollableParent, format, styled, isIE11, elementContains, elementContainsAttribute, findElementRecursive, getChildren, getDocument, getParent, getRect, getVirtualParent, getWindow, isVirtualElement, on, portalContainsElement, raiseClick, DATA_PORTAL_ATTRIBUTE, setPortalAttribute, setVirtualParent, SELECTION_CHANGE, SelectionMode, SelectionDirection, Selection, warn, setWarningCallback, warnConditionallyRequiredProps, resetControlledWarnings, warnControlledUsage, warnDeprecations, warnMutuallyExclusive */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Async */ "pYoC");
/* 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__(/*! ./AutoScroll */ "XfdM");
/* 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__(/*! ./BaseComponent */ "Mc6L");
/* 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__(/*! ./DelayedRender */ "eQ57");
/* 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__(/*! ./EventGroup */ "U7qM");
/* 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__(/*! ./FabricPerformance */ "VmiK");
/* 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__(/*! ./GlobalSettings */ "vQgb");
/* 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__(/*! ./KeyCodes */ "wzjj");
/* 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__(/*! ./Rectangle */ "U9Fs");
/* 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__(/*! ./appendFunction */ "wilE");
/* 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__(/*! ./aria */ "NWTy");
/* 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__(/*! ./array */ "QWEJ");
/* 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__(/*! ./asAsync */ "7Wat");
/* 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__(/*! ./assertNever */ "IgQy");
/* 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__(/*! ./classNamesFunction */ "IHMw");
/* 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__(/*! ./controlled */ "k8lR");
/* 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__(/*! ./css */ "5jMA");
/* 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__(/*! ./customizations/Customizations */ "/VGh");
/* 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__(/*! ./customizations/Customizer */ "mCKX");
/* 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__(/*! ./customizations/CustomizerContext */ "dzvG");
/* 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__(/*! ./customizations/customizable */ "+TBi");
/* 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__(/*! ./customizations/mergeCustomizations */ "53CY");
/* 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__(/*! ./customizations/mergeSettings */ "e9Fk");
/* 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__(/*! ./dom */ "zlaV");
/* 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__, "getWindow", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getWindow"]; });

/* 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__(/*! ./extendComponent */ "RoV7");
/* 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__(/*! ./focus */ "OZNN");
/* 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__(/*! ./getId */ "u4cQ");
/* 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__(/*! ./hoist */ "xLAg");
/* 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__(/*! ./hoistStatics */ "zpSB");
/* 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__(/*! ./initializeComponentRef */ "kFBv");
/* 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__(/*! ./initializeFocusRects */ "jyOu");
/* 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__(/*! ./initials */ "xbEj");
/* 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__(/*! ./keyboard */ "YNbW");
/* 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__(/*! ./language */ "T4H6");
/* 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__(/*! ./math */ "4kiV");
/* 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__(/*! ./memoize */ "ULee");
/* 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__(/*! ./merge */ "HpoS");
/* 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__(/*! ./mobileDetector */ "EDUl");
/* 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__(/*! ./object */ "CTVQ");
/* 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__(/*! ./osDetector */ "0zX7");
/* 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__(/*! ./overflow */ "QT25");
/* 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__(/*! ./properties */ "Kg24");
/* 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__(/*! ./resources */ "XI+J");
/* 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__(/*! ./rtl */ "XAq3");
/* 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__(/*! ./safeRequestAnimationFrame */ "V0Hb");
/* 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__(/*! ./safeSetTimeout */ "kK4e");
/* 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__(/*! ./scroll */ "cx+E");
/* 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__(/*! ./selection/index */ "Gq5R");
/* 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__(/*! ./string */ "zKAJ");
/* 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__(/*! ./styled */ "AnBk");
/* 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__(/*! ./warn */ "Y5+h");
/* 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__(/*! ./ie11Detector */ "VwBD");
/* 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__(/*! ./setFocusVisibility */ "DMap");
/* 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__(/*! ./dom/setSSR */ "Pbfo");
/* 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__(/*! ./version */ "EbF5");























































//# sourceMappingURL=index.js.map

/***/ }),

/***/ "+TBi":
/*!********************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/customizable.js ***!
  \********************************************************************************************************************************************************************************************************************/
/*! exports provided: customizable */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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__(/*! ./Customizations */ "/VGh");
/* harmony import */ var _hoistStatics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hoistStatics */ "zpSB");
/* harmony import */ var _CustomizerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CustomizerContext */ "dzvG");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @uifabric/merge-styles */ "yGjf");






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);
    };
}
//# sourceMappingURL=customizable.js.map

/***/ }),

/***/ "/VGh":
/*!**********************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/Customizations.js ***!
  \**********************************************************************************************************************************************************************************************************************/
/*! exports provided: Customizations */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var _GlobalSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../GlobalSettings */ "vQgb");


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;
}());

//# sourceMappingURL=Customizations.js.map

/***/ }),

/***/ "/qA7":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/elementContains.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: elementContains */
/***/ (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__(/*! ./getParent */ "YUC7");

/**
 * 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;
}
//# sourceMappingURL=elementContains.js.map

/***/ }),

/***/ "0LsE":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/DefaultFontStyles.js ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: DefaultFontStyles, registerDefaultFontFaces */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _fonts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fonts */ "jJtL");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");



// 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());
//# sourceMappingURL=DefaultFontStyles.js.map

/***/ }),

/***/ "0WQZ":
/*!*******************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn/warnMutuallyExclusive.js ***!
  \*******************************************************************************************************************************************************************************************************************/
/*! exports provided: warnMutuallyExclusive */
/***/ (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__(/*! ./warn */ "EpY5");

/**
 * 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.");
                }
            }
        }
    }
}
//# sourceMappingURL=warnMutuallyExclusive.js.map

/***/ }),

/***/ "0zX7":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/osDetector.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: isMac */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

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;
}
//# sourceMappingURL=osDetector.js.map

/***/ }),

/***/ "13cA":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/zIndexes.js ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: ZIndexes */
/***/ (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 = {}));
//# sourceMappingURL=zIndexes.js.map

/***/ }),

/***/ "1UmP":
/*!***************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/utilities/buildClassMap.js ***!
  \***************************************************************************************************************************************************************************/
/*! exports provided: buildClassMap */
/***/ (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__(/*! ../MergeStyles */ "dWeX");

/**
 * 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;
}
//# sourceMappingURL=buildClassMap.js.map

/***/ }),

/***/ "1fkr":
/*!***********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/keyframes.js ***!
  \***********************************************************************************************************************************************************************/
/*! exports provided: keyframes */
/***/ (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__(/*! ./StyleOptionsState */ "Oi/Z");
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Stylesheet */ "ZeYq");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styleToClassName */ "TawW");



/**
 * 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;
}
//# sourceMappingURL=keyframes.js.map

/***/ }),

/***/ "1rAH":
/*!**********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/classNames/AnimationClassNames.js ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: AnimationClassNames */
/***/ (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__(/*! ../utilities/index */ "9CBk");
/* harmony import */ var _styles_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/index */ "pNU6");


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

/***/ }),

/***/ "1rrS":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/classNames/ColorClassNames.js ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: ColorClassNames */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _styles_DefaultPalette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/DefaultPalette */ "7iFq");
/* harmony import */ var _styles_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../styles/index */ "pNU6");



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
    });
}
//# sourceMappingURL=ColorClassNames.js.map

/***/ }),

/***/ "3FSc":
/*!*********************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/elementContainsAttribute.js ***!
  \*********************************************************************************************************************************************************************************************************************/
/*! exports provided: elementContainsAttribute */
/***/ (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__(/*! ./findElementRecursive */ "5FCc");

/**
 * 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);
}
//# sourceMappingURL=elementContainsAttribute.js.map

/***/ }),

/***/ "3YjG":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/initializeDir.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: initializeDir */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

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');
        }
    }
}
//# sourceMappingURL=initializeDir.js.map

/***/ }),

/***/ "4kiV":
/*!*********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/math.js ***!
  \*********************************************************************************************************************************************************************************************/
/*! exports provided: getDistanceBetweenPoints, fitContentToBounds, calculatePrecision, precisionRound */
/***/ (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;
}
//# sourceMappingURL=math.js.map

/***/ }),

/***/ "4toK":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getDocument.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: getDocument */
/***/ (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__(/*! ./setSSR */ "Pbfo");

/**
 * 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;
    }
}
//# sourceMappingURL=getDocument.js.map

/***/ }),

/***/ "53CY":
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/mergeCustomizations.js ***!
  \***************************************************************************************************************************************************************************************************************************/
/*! exports provided: mergeCustomizations */
/***/ (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__(/*! ./mergeSettings */ "e9Fk");

/**
 * 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
        }
    };
}
//# sourceMappingURL=mergeCustomizations.js.map

/***/ }),

/***/ "5FCc":
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/findElementRecursive.js ***!
  \*****************************************************************************************************************************************************************************************************************/
/*! exports provided: findElementRecursive */
/***/ (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__(/*! ./getParent */ "YUC7");

/**
 * 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);
}
//# sourceMappingURL=findElementRecursive.js.map

/***/ }),

/***/ "5jMA":
/*!********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/css.js ***!
  \********************************************************************************************************************************************************************************************/
/*! exports provided: css */
/***/ (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(' ');
}
//# sourceMappingURL=css.js.map

/***/ }),

/***/ "68CZ":
/*!************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/selection/Selection.js ***!
  \************************************************************************************************************************************************************************************************************/
/*! exports provided: Selection */
/***/ (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__(/*! ./Selection.types */ "8Hr8");
/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../EventGroup */ "U7qM");


/**
 * {@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;
}
//# sourceMappingURL=Selection.js.map

/***/ }),

/***/ "7Lgv":
/*!**************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn/warnDeprecations.js ***!
  \**************************************************************************************************************************************************************************************************************/
/*! exports provided: warnDeprecations */
/***/ (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__(/*! ./warn */ "EpY5");

/**
 * 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);
            }
        }
    }
}
//# sourceMappingURL=warnDeprecations.js.map

/***/ }),

/***/ "7Qol":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/getVendorSettings.js ***!
  \*******************************************************************************************************************************************************************************/
/*! exports provided: getVendorSettings, setVendorSettings */
/***/ (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;
}
//# sourceMappingURL=getVendorSettings.js.map

/***/ }),

/***/ "7Wat":
/*!************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/asAsync.js ***!
  \************************************************************************************************************************************************************************************************/
/*! exports provided: asAsync */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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 }))); });
}
//# sourceMappingURL=asAsync.js.map

/***/ }),

/***/ "7iFq":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/DefaultPalette.js ***!
  \*************************************************************************************************************************************************************************/
/*! exports provided: DefaultPalette */
/***/ (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'
};
//# sourceMappingURL=DefaultPalette.js.map

/***/ }),

/***/ "8Hr8":
/*!******************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/selection/Selection.types.js ***!
  \******************************************************************************************************************************************************************************************************************/
/*! exports provided: SELECTION_CHANGE, SelectionMode, SelectionDirection */
/***/ (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 = {}));
//# sourceMappingURL=Selection.types.js.map

/***/ }),

/***/ "8k4T":
/*!****************************************!*\
  !*** ./lib/uifabric-styling-bundle.js ***!
  \****************************************/
/*! exports provided: _Utilities, AnimationClassNames, FontClassNames, ColorClassNames, AnimationStyles, AnimationVariables, DefaultPalette, DefaultEffects, DefaultFontStyles, registerDefaultFontFaces, FontSizes, FontWeights, IconFontSizes, createFontStyles, hiddenContentStyle, PulsingBeaconAnimationStyles, getGlobalClassNames, ThemeSettingName, getTheme, loadTheme, createTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, buildClassMap, getIcon, registerIcons, registerIconAlias, unregisterIcons, setIconOptions, getIconClassName, InjectionMode, Stylesheet, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, mergeStyleSets, mergeStyles, getFocusStyle, focusClear, getFocusOutlineStyle, getThemedContext, HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector, normalize, noWrap, getFadedOverflowStyle, getPlaceholderStyles, ZIndexes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_Utilities", function() { return _Utilities; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @uifabric/styling */ "jQzw");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"]; });

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");

// Isolated Utilities export
 // 1KB minified
var _Utilities = _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__;


/***/ }),

/***/ "9259":
/*!****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/theme.js ***!
  \****************************************************************************************************************************************************************/
/*! exports provided: ThemeSettingName, getTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, loadTheme, createTheme */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");
/* harmony import */ var _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DefaultFontStyles */ "0LsE");
/* harmony import */ var _DefaultPalette__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DefaultPalette */ "7iFq");
/* harmony import */ var _DefaultSpacing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DefaultSpacing */ "MkHs");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @microsoft/load-themed-styles */ "jOlS");
/* 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__(/*! ./DefaultEffects */ "EGK+");
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;
}
//# sourceMappingURL=theme.js.map

/***/ }),

/***/ "9CBk":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/utilities/index.js ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: buildClassMap, getIcon, registerIcons, registerIconAlias, unregisterIcons, setIconOptions, getIconClassName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _buildClassMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buildClassMap */ "1UmP");
/* 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__(/*! ./icons */ "UMag");
/* 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__(/*! ./getIconClassName */ "SHBe");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _getIconClassName__WEBPACK_IMPORTED_MODULE_2__["getIconClassName"]; });




//# sourceMappingURL=index.js.map

/***/ }),

/***/ "AnBk":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/styled.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: styled */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./customizations/Customizations */ "/VGh");
/* harmony import */ var _customizations_CustomizerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./customizations/CustomizerContext */ "dzvG");





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;
}
//# sourceMappingURL=styled.js.map

/***/ }),

/***/ "B0Oe":
/*!************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/transforms/prefixRules.js ***!
  \************************************************************************************************************************************************************************************/
/*! exports provided: prefixRules */
/***/ (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__(/*! ../getVendorSettings */ "7Qol");

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);
            }
        }
    }
}
//# sourceMappingURL=prefixRules.js.map

/***/ }),

/***/ "CTVQ":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/object.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: getId, resetIds, shallowCompare, assign, filteredAssign, mapEnumByName, values */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _getId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getId */ "u4cQ");
/* 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;
    }, []);
}
//# sourceMappingURL=object.js.map

/***/ }),

/***/ "DMap":
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/setFocusVisibility.js ***!
  \***********************************************************************************************************************************************************************************************************/
/*! exports provided: IsFocusVisibleClassName, setFocusVisibility */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

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);
        }
    }
}
//# sourceMappingURL=setFocusVisibility.js.map

/***/ }),

/***/ "EDUl":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/mobileDetector.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: isIOS */
/***/ (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);
};
//# sourceMappingURL=mobileDetector.js.map

/***/ }),

/***/ "EGK+":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/DefaultEffects.js ***!
  \*************************************************************************************************************************************************************************/
/*! exports provided: DefaultEffects */
/***/ (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'
};
//# sourceMappingURL=DefaultEffects.js.map

/***/ }),

/***/ "ERUF":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/classNames/FontClassNames.js ***!
  \*****************************************************************************************************************************************************************************/
/*! exports provided: FontClassNames */
/***/ (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__(/*! ../utilities/buildClassMap */ "1UmP");
/* harmony import */ var _styles_DefaultFontStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/DefaultFontStyles */ "0LsE");


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

/***/ }),

/***/ "EbF5":
/*!************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/version.js ***!
  \************************************************************************************************************************************************************************************************/
/*! no exports provided */
/***/ (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__(/*! @uifabric/set-version */ "oN+8");
// @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');
//# sourceMappingURL=version.js.map

/***/ }),

/***/ "EpY5":
/*!**************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn/warn.js ***!
  \**************************************************************************************************************************************************************************************************/
/*! exports provided: warn, setWarningCallback */
/***/ (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 && "dev" !== '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;
}
//# sourceMappingURL=warn.js.map

/***/ }),

/***/ "F2Fe":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/mergeStyles.js ***!
  \*************************************************************************************************************************************************************************/
/*! exports provided: mergeStyles, mergeCss */
/***/ (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__(/*! ./extractStyleParts */ "NQ/L");
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StyleOptionsState */ "Oi/Z");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styleToClassName */ "TawW");



/**
 * 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(' ');
}
//# sourceMappingURL=mergeStyles.js.map

/***/ }),

/***/ "Fjt+":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/raiseClick.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: raiseClick */
/***/ (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;
}
//# sourceMappingURL=raiseClick.js.map

/***/ }),

/***/ "Gq5R":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/selection/index.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: SELECTION_CHANGE, SelectionMode, SelectionDirection, Selection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Selection_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Selection.types */ "8Hr8");
/* 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__(/*! ./Selection */ "68CZ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _Selection__WEBPACK_IMPORTED_MODULE_1__["Selection"]; });



//# sourceMappingURL=index.js.map

/***/ }),

/***/ "HpoS":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/merge.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: merge */
/***/ (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;
}
//# sourceMappingURL=merge.js.map

/***/ }),

/***/ "HsmX":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/fontFace.js ***!
  \**********************************************************************************************************************************************************************/
/*! exports provided: fontFace */
/***/ (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__(/*! ./StyleOptionsState */ "Oi/Z");
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Stylesheet */ "ZeYq");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styleToClassName */ "TawW");



/**
 * 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);
}
//# sourceMappingURL=fontFace.js.map

/***/ }),

/***/ "IEGl":
/*!*************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/isVirtualElement.js ***!
  \*************************************************************************************************************************************************************************************************************/
/*! exports provided: isVirtualElement */
/***/ (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;
}
//# sourceMappingURL=isVirtualElement.js.map

/***/ }),

/***/ "IHMw":
/*!***********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/classNamesFunction.js ***!
  \***********************************************************************************************************************************************************************************************************/
/*! exports provided: classNamesFunction */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _rtl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rtl */ "XAq3");


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;
    }
}
//# sourceMappingURL=classNamesFunction.js.map

/***/ }),

/***/ "IV0G":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getWindow.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: getWindow */
/***/ (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__(/*! ./setSSR */ "Pbfo");

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;
    }
}
//# sourceMappingURL=getWindow.js.map

/***/ }),

/***/ "IgQy":
/*!****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/assertNever.js ***!
  \****************************************************************************************************************************************************************************************************/
/*! exports provided: assertNever */
/***/ (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);
}
//# sourceMappingURL=assertNever.js.map

/***/ }),

/***/ "Kg24":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/properties.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: baseElementEvents, baseElementProperties, htmlElementProperties, labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, imageProperties, divProperties, getNativeProps */
/***/ (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__(/*! ./object */ "CTVQ");

/**
 * 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);
}
//# sourceMappingURL=properties.js.map

/***/ }),

/***/ "LM2e":
/*!*********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/version.js ***!
  \*********************************************************************************************************************************************************************/
/*! no exports provided */
/***/ (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__(/*! @uifabric/set-version */ "oN+8");
// @uifabric/merge-styles@7.8.1
// 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.1');
//# sourceMappingURL=version.js.map

/***/ }),

/***/ "Mc6L":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/BaseComponent.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: BaseComponent, nullRender */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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__(/*! ./Async */ "pYoC");
/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EventGroup */ "U7qM");
/* harmony import */ var _warn_warnConditionallyRequiredProps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./warn/warnConditionallyRequiredProps */ "h68A");
/* harmony import */ var _warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./warn/warnMutuallyExclusive */ "0WQZ");
/* harmony import */ var _warn_warnDeprecations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./warn/warnDeprecations */ "7Lgv");
/* harmony import */ var _initializeFocusRects__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./initializeFocusRects */ "jyOu");
/* harmony import */ var _initializeDir__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./initializeDir */ "3YjG");









/**
 * 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;
}
//# sourceMappingURL=BaseComponent.js.map

/***/ }),

/***/ "Mg3c":
/*!************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/getFocusStyle.js ***!
  \************************************************************************************************************************************************************************/
/*! exports provided: getFocusStyle, focusClear, getFocusOutlineStyle */
/***/ (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__(/*! ./CommonStyles */ "VHqe");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");
/* harmony import */ var _zIndexes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./zIndexes */ "13cA");



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)
    };
}
//# sourceMappingURL=getFocusStyle.js.map

/***/ }),

/***/ "MkHs":
/*!*************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/DefaultSpacing.js ***!
  \*************************************************************************************************************************************************************************/
/*! exports provided: DefaultSpacing */
/***/ (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'
};
//# sourceMappingURL=DefaultSpacing.js.map

/***/ }),

/***/ "N6c1":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/sessionStorage.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: getItem, setItem */
/***/ (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 */
    }
}
//# sourceMappingURL=sessionStorage.js.map

/***/ }),

/***/ "NG5o":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/on.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: on */
/***/ (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); };
}
//# sourceMappingURL=on.js.map

/***/ }),

/***/ "NQ/L":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/extractStyleParts.js ***!
  \*******************************************************************************************************************************************************************************/
/*! exports provided: extractStyleParts */
/***/ (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__(/*! ./Stylesheet */ "ZeYq");

/**
 * 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
    };
}
//# sourceMappingURL=extractStyleParts.js.map

/***/ }),

/***/ "NS6t":
/*!**************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/AnimationStyles.js ***!
  \**************************************************************************************************************************************************************************/
/*! exports provided: AnimationVariables, AnimationStyles */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");

/* 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)" }
    });
}
//# sourceMappingURL=AnimationStyles.js.map

/***/ }),

/***/ "NWTy":
/*!*********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/aria.js ***!
  \*********************************************************************************************************************************************************************************************/
/*! exports provided: mergeAriaAttributeValues */
/***/ (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;
}
//# sourceMappingURL=aria.js.map

/***/ }),

/***/ "OPk9":
/*!*************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/transforms/provideUnits.js ***!
  \*************************************************************************************************************************************************************************************/
/*! exports provided: provideUnits */
/***/ (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',
    '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;
    }
}
//# sourceMappingURL=provideUnits.js.map

/***/ }),

/***/ "OZNN":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/focus.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: getFirstFocusable, getLastFocusable, getFirstTabbable, getLastTabbable, focusFirstChild, getPreviousElement, getNextElement, isElementVisible, isElementTabbable, isElementFocusZone, isElementFocusSubZone, doesElementContainFocus, shouldWrapFocus, focusAsync, getFocusableByIndexPath, getElementIndexPath */
/***/ (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__(/*! ./dom/elementContainsAttribute */ "3FSc");
/* harmony import */ var _dom_elementContains__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom/elementContains */ "/qA7");
/* harmony import */ var _dom_getParent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom/getParent */ "YUC7");
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dom/getWindow */ "IV0G");
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom/getDocument */ "4toK");





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;
}
//# sourceMappingURL=focus.js.map

/***/ }),

/***/ "Obca":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/concatStyleSets.js ***!
  \*****************************************************************************************************************************************************************************/
/*! exports provided: concatStyleSets */
/***/ (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;
}
//# sourceMappingURL=concatStyleSets.js.map

/***/ }),

/***/ "Oi/Z":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/StyleOptionsState.js ***!
  \*******************************************************************************************************************************************************************************/
/*! exports provided: setRTL, getRTL, getStyleOptions */
/***/ (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()
    };
}
//# sourceMappingURL=StyleOptionsState.js.map

/***/ }),

/***/ "Orvz":
/*!***************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/PulsingBeaconAnimationStyles.js ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: PulsingBeaconAnimationStyles */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/merge-styles */ "yGjf");


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
};
//# sourceMappingURL=PulsingBeaconAnimationStyles.js.map

/***/ }),

/***/ "Pbfo":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/setSSR.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: _isSSR, setSSR */
/***/ (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;
}
//# sourceMappingURL=setSSR.js.map

/***/ }),

/***/ "QT25":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/overflow.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: hasHorizontalOverflow, hasVerticalOverflow, hasOverflow */
/***/ (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);
}
//# sourceMappingURL=overflow.js.map

/***/ }),

/***/ "QWEJ":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/array.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: findIndex, find, createArray, toMatrix, removeIndex, replaceElement, addElementAtIndex, flatten, arraysEqual */
/***/ (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;
}
//# sourceMappingURL=array.js.map

/***/ }),

/***/ "RoV7":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/extendComponent.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: extendComponent */
/***/ (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__(/*! ./appendFunction */ "wilE");

/**
 * 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]);
        }
    }
}
//# sourceMappingURL=extendComponent.js.map

/***/ }),

/***/ "SAn7":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/localStorage.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: getItem, setItem */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

/**
 * 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 */
    }
}
//# sourceMappingURL=localStorage.js.map

/***/ }),

/***/ "SHBe":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/utilities/getIconClassName.js ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: getIconClassName */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons */ "UMag");


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;
}
//# sourceMappingURL=getIconClassName.js.map

/***/ }),

/***/ "T1Up":
/*!********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/getFadedOverflowStyle.js ***!
  \********************************************************************************************************************************************************************************/
/*! exports provided: getFadedOverflowStyle */
/***/ (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%';
    }
}
//# sourceMappingURL=getFadedOverflowStyle.js.map

/***/ }),

/***/ "T4H6":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/language.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: getLanguage, setLanguage */
/***/ (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__(/*! ./dom/getDocument */ "4toK");
/* harmony import */ var _localStorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localStorage */ "SAn7");


// 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;
}
//# sourceMappingURL=language.js.map

/***/ }),

/***/ "TawW":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/styleToClassName.js ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: serializeRuleEntries, styleToRegistration, applyRegistration, styleToClassName */
/***/ (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__(/*! ./Stylesheet */ "ZeYq");
/* harmony import */ var _transforms_kebabRules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transforms/kebabRules */ "UBW6");
/* harmony import */ var _transforms_prefixRules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transforms/prefixRules */ "B0Oe");
/* harmony import */ var _transforms_provideUnits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transforms/provideUnits */ "OPk9");
/* harmony import */ var _transforms_rtlifyRules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./transforms/rtlifyRules */ "Xri7");





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 '';
}
//# sourceMappingURL=styleToClassName.js.map

/***/ }),

/***/ "U7qM":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/EventGroup.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: EventGroup */
/***/ (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__(/*! ./object */ "CTVQ");
/* 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;
}());

//# sourceMappingURL=EventGroup.js.map

/***/ }),

/***/ "U9Fs":
/*!**************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/Rectangle.js ***!
  \**************************************************************************************************************************************************************************************************/
/*! exports provided: Rectangle */
/***/ (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;
}());

//# sourceMappingURL=Rectangle.js.map

/***/ }),

/***/ "UBW6":
/*!***********************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/transforms/kebabRules.js ***!
  \***********************************************************************************************************************************************************************************/
/*! exports provided: kebabRules */
/***/ (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();
}
//# sourceMappingURL=kebabRules.js.map

/***/ }),

/***/ "ULee":
/*!************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/memoize.js ***!
  \************************************************************************************************************************************************************************************************/
/*! exports provided: setMemoizeWeakMap, resetMemoizations, memoize, memoizeFunction */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");

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
    };
}
//# sourceMappingURL=memoize.js.map

/***/ }),

/***/ "UMag":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/utilities/icons.js ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: registerIcons, unregisterIcons, registerIconAlias, getIcon, setIconOptions */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @uifabric/merge-styles */ "yGjf");



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);
        }
    }
}
//# sourceMappingURL=icons.js.map

/***/ }),

/***/ "V0Hb":
/*!******************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/safeRequestAnimationFrame.js ***!
  \******************************************************************************************************************************************************************************************************************/
/*! exports provided: safeRequestAnimationFrame */
/***/ (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__(/*! ./extendComponent */ "RoV7");

/**
 * 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);
    };
};
//# sourceMappingURL=safeRequestAnimationFrame.js.map

/***/ }),

/***/ "VHqe":
/*!***********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/CommonStyles.js ***!
  \***********************************************************************************************************************************************************************/
/*! exports provided: HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector */
/***/ (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)";
}
//# sourceMappingURL=CommonStyles.js.map

/***/ }),

/***/ "VmiK":
/*!**********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/FabricPerformance.js ***!
  \**********************************************************************************************************************************************************************************************************/
/*! exports provided: FabricPerformance */
/***/ (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;
}());

//# sourceMappingURL=FabricPerformance.js.map

/***/ }),

/***/ "VwBD":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/ie11Detector.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: isIE11 */
/***/ (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;
};
//# sourceMappingURL=ie11Detector.js.map

/***/ }),

/***/ "VzDN":
/*!**************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/concatStyleSetsWithProps.js ***!
  \**************************************************************************************************************************************************************************************/
/*! exports provided: concatStyleSetsWithProps */
/***/ (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__(/*! ./concatStyleSets */ "Obca");

/**
 * 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 {};
}
//# sourceMappingURL=concatStyleSetsWithProps.js.map

/***/ }),

/***/ "Wqfn":
/*!************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/GeneralStyles.js ***!
  \************************************************************************************************************************************************************************/
/*! exports provided: normalize, noWrap */
/***/ (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'
};
//# sourceMappingURL=GeneralStyles.js.map

/***/ }),

/***/ "XAq3":
/*!********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/rtl.js ***!
  \********************************************************************************************************************************************************************************************/
/*! exports provided: getRTL, setRTL, getRTLSafeKeyCode */
/***/ (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__(/*! ./KeyCodes */ "wzjj");
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom/getDocument */ "4toK");
/* harmony import */ var _sessionStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sessionStorage */ "N6c1");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uifabric/merge-styles */ "yGjf");




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;
}
//# sourceMappingURL=rtl.js.map

/***/ }),

/***/ "XHEg":
/*!****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/mergeStyleSets.js ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: mergeStyleSets, mergeCssSets */
/***/ (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__(/*! ./concatStyleSets */ "Obca");
/* harmony import */ var _extractStyleParts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extractStyleParts */ "NQ/L");
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./StyleOptionsState */ "Oi/Z");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./styleToClassName */ "TawW");




/**
 * 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;
}
//# sourceMappingURL=mergeStyleSets.js.map

/***/ }),

/***/ "XI+J":
/*!**************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/resources.js ***!
  \**************************************************************************************************************************************************************************************************/
/*! exports provided: getResourceUrl, setBaseUrl */
/***/ (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;
}
//# sourceMappingURL=resources.js.map

/***/ }),

/***/ "XfdM":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/AutoScroll.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: AutoScroll */
/***/ (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__(/*! ./EventGroup */ "U7qM");
/* harmony import */ var _scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scroll */ "cx+E");
/* harmony import */ var _dom_getRect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom/getRect */ "vGG9");



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;
}());

//# sourceMappingURL=AutoScroll.js.map

/***/ }),

/***/ "Xgq1":
/*!*****************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/hiddenContentStyle.js ***!
  \*****************************************************************************************************************************************************************************/
/*! exports provided: hiddenContentStyle */
/***/ (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'
};
//# sourceMappingURL=hiddenContentStyle.js.map

/***/ }),

/***/ "Xri7":
/*!************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/transforms/rtlifyRules.js ***!
  \************************************************************************************************************************************************************************************/
/*! exports provided: rtlifyRules */
/***/ (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;
}
//# sourceMappingURL=rtlifyRules.js.map

/***/ }),

/***/ "Y5+h":
/*!*********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn.js ***!
  \*********************************************************************************************************************************************************************************************/
/*! exports provided: warn, setWarningCallback, warnConditionallyRequiredProps, resetControlledWarnings, warnControlledUsage, warnDeprecations, warnMutuallyExclusive */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _warn_warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./warn/warn */ "EpY5");
/* 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__(/*! ./warn/warnConditionallyRequiredProps */ "h68A");
/* 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__(/*! ./warn/warnControlledUsage */ "erPg");
/* 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__(/*! ./warn/warnDeprecations */ "7Lgv");
/* 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__(/*! ./warn/warnMutuallyExclusive */ "0WQZ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_4__["warnMutuallyExclusive"]; });






//# sourceMappingURL=warn.js.map

/***/ }),

/***/ "YNbW":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/keyboard.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: isDirectionalKeyCode, addDirectionalKeyCode */
/***/ (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__(/*! ./KeyCodes */ "wzjj");
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;
}
//# sourceMappingURL=keyboard.js.map

/***/ }),

/***/ "YUC7":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getParent.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: getParent */
/***/ (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__(/*! ./getVirtualParent */ "sHQu");

/**
 * 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));
}
//# sourceMappingURL=getParent.js.map

/***/ }),

/***/ "ZeYq":
/*!************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/Stylesheet.js ***!
  \************************************************************************************************************************************************************************/
/*! exports provided: InjectionMode, Stylesheet */
/***/ (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__(/*! tslib */ "nv8F");

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;
}());

//# sourceMappingURL=Stylesheet.js.map

/***/ }),

/***/ "cDcd":
/*!************************!*\
  !*** external "react" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_cDcd__;

/***/ }),

/***/ "cx+E":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/scroll.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: DATA_IS_SCROLLABLE_ATTRIBUTE, allowScrollOnElement, disableBodyScroll, enableBodyScroll, getScrollbarWidth, findScrollableParent */
/***/ (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__(/*! ./dom/getDocument */ "4toK");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom/getWindow */ "IV0G");



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;
}
//# sourceMappingURL=scroll.js.map

/***/ }),

/***/ "dWeX":
/*!***************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/MergeStyles.js ***!
  \***************************************************************************************************************************************************************/
/*! exports provided: InjectionMode, Stylesheet, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, mergeStyleSets, mergeStyles */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* 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"]; });


//# sourceMappingURL=MergeStyles.js.map

/***/ }),

/***/ "dy3d":
/*!***********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/version.js ***!
  \***********************************************************************************************************************************************************/
/*! no exports provided */
/***/ (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__(/*! @uifabric/set-version */ "oN+8");
// @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');
//# sourceMappingURL=version.js.map

/***/ }),

/***/ "dzvG":
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/CustomizerContext.js ***!
  \*************************************************************************************************************************************************************************************************************************/
/*! exports provided: CustomizerContext */
/***/ (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 */ "cDcd");
/* 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: {}
    }
});
//# sourceMappingURL=CustomizerContext.js.map

/***/ }),

/***/ "e9Fk":
/*!*********************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/mergeSettings.js ***!
  \*********************************************************************************************************************************************************************************************************************/
/*! exports provided: mergeSettings, mergeScopedSettings */
/***/ (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__(/*! tslib */ "nv8F");

/**
 * 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;
    };
}
//# sourceMappingURL=mergeSettings.js.map

/***/ }),

/***/ "eQ57":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/DelayedRender.js ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: DelayedRender */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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"]));

//# sourceMappingURL=DelayedRender.js.map

/***/ }),

/***/ "erPg":
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn/warnControlledUsage.js ***!
  \*****************************************************************************************************************************************************************************************************************/
/*! exports provided: resetControlledWarnings, warnControlledUsage */
/***/ (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__(/*! ./warn */ "EpY5");
/* harmony import */ var _controlled__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../controlled */ "k8lR");


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");
            }
        }
    }
}
//# sourceMappingURL=warnControlledUsage.js.map

/***/ }),

/***/ "h68A":
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/warn/warnConditionallyRequiredProps.js ***!
  \****************************************************************************************************************************************************************************************************************************/
/*! exports provided: warnConditionallyRequiredProps */
/***/ (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__(/*! ./warn */ "EpY5");

/**
 * 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 && "dev" !== '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.'");
            }
        }
    }
}
//# sourceMappingURL=warnConditionallyRequiredProps.js.map

/***/ }),

/***/ "hzr/":
/*!***************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/setPortalAttribute.js ***!
  \***************************************************************************************************************************************************************************************************************/
/*! exports provided: DATA_PORTAL_ATTRIBUTE, setPortalAttribute */
/***/ (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');
}
//# sourceMappingURL=setPortalAttribute.js.map

/***/ }),

/***/ "jJtL":
/*!****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/fonts.js ***!
  \****************************************************************************************************************************************************************/
/*! exports provided: LocalizedFontNames, LocalizedFontFamilies, FontSizes, FontWeights, IconFontSizes, createFontStyles */
/***/ (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
    };
}
//# sourceMappingURL=fonts.js.map

/***/ }),

/***/ "jOlS":
/*!************************************************!*\
  !*** external "@microsoft/load-themed-styles" ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_jOlS__;

/***/ }),

/***/ "jQzw":
/*!*********************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/index.js ***!
  \*********************************************************************************************************************************************************/
/*! exports provided: AnimationClassNames, FontClassNames, ColorClassNames, AnimationStyles, AnimationVariables, DefaultPalette, DefaultEffects, DefaultFontStyles, registerDefaultFontFaces, FontSizes, FontWeights, IconFontSizes, createFontStyles, hiddenContentStyle, PulsingBeaconAnimationStyles, getGlobalClassNames, ThemeSettingName, getTheme, loadTheme, createTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, buildClassMap, getIcon, registerIcons, registerIconAlias, unregisterIcons, setIconOptions, getIconClassName, InjectionMode, Stylesheet, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, mergeStyleSets, mergeStyles, getFocusStyle, focusClear, getFocusOutlineStyle, getThemedContext, HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector, normalize, noWrap, getFadedOverflowStyle, getPlaceholderStyles, ZIndexes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _classNames_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classNames/index */ "lxOT");
/* 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__(/*! ./styles/index */ "pNU6");
/* 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__(/*! ./utilities/index */ "9CBk");
/* 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__(/*! ./MergeStyles */ "dWeX");
/* 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__(/*! ./version */ "dy3d");





//# sourceMappingURL=index.js.map

/***/ }),

/***/ "jtZz":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getChildren.js ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: getChildren */
/***/ (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__(/*! ./isVirtualElement */ "IEGl");

/**
 * 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;
}
//# sourceMappingURL=getChildren.js.map

/***/ }),

/***/ "jyOu":
/*!*************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/initializeFocusRects.js ***!
  \*************************************************************************************************************************************************************************************************************/
/*! exports provided: IsFocusVisibleClassName, initializeFocusRects */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");
/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboard */ "YNbW");


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);
        }
    }
}
//# sourceMappingURL=initializeFocusRects.js.map

/***/ }),

/***/ "k8lR":
/*!***************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/controlled.js ***!
  \***************************************************************************************************************************************************************************************************/
/*! exports provided: isControlled */
/***/ (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;
}
//# sourceMappingURL=controlled.js.map

/***/ }),

/***/ "kFBv":
/*!***************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/initializeComponentRef.js ***!
  \***************************************************************************************************************************************************************************************************************/
/*! exports provided: initializeComponentRef */
/***/ (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__(/*! ./extendComponent */ "RoV7");

/**
 * 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);
        }
    }
}
//# sourceMappingURL=initializeComponentRef.js.map

/***/ }),

/***/ "kK4e":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/safeSetTimeout.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: safeSetTimeout */
/***/ (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__(/*! ./extendComponent */ "RoV7");

/**
 * 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);
    };
};
//# sourceMappingURL=safeSetTimeout.js.map

/***/ }),

/***/ "lMRy":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/scheme.js ***!
  \*****************************************************************************************************************************************************************/
/*! exports provided: getThemedContext */
/***/ (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__(/*! @uifabric/utilities */ "+4t+");

/**
 * @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;
}
//# sourceMappingURL=scheme.js.map

/***/ }),

/***/ "lxOT":
/*!********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/classNames/index.js ***!
  \********************************************************************************************************************************************************************/
/*! exports provided: AnimationClassNames, FontClassNames, ColorClassNames */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AnimationClassNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationClassNames */ "1rAH");
/* 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__(/*! ./FontClassNames */ "ERUF");
/* 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__(/*! ./ColorClassNames */ "1rrS");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _ColorClassNames__WEBPACK_IMPORTED_MODULE_2__["ColorClassNames"]; });




//# sourceMappingURL=index.js.map

/***/ }),

/***/ "mCKX":
/*!******************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/customizations/Customizer.js ***!
  \******************************************************************************************************************************************************************************************************************/
/*! exports provided: Customizer */
/***/ (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__(/*! tslib */ "nv8F");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "cDcd");
/* 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__(/*! ./Customizations */ "/VGh");
/* harmony import */ var _CustomizerContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CustomizerContext */ "dzvG");
/* harmony import */ var _mergeCustomizations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeCustomizations */ "53CY");





/**
 * 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"]));

//# sourceMappingURL=Customizer.js.map

/***/ }),

/***/ "nj5S":
/*!******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/getGlobalClassNames.js ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: getGlobalClassNames */
/***/ (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__(/*! @uifabric/merge-styles */ "yGjf");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @uifabric/utilities */ "+4t+");


/**
 * 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);
}
//# sourceMappingURL=getGlobalClassNames.js.map

/***/ }),

/***/ "nv8F":
/*!*********************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/tslib/1.9.3/node_modules/tslib/tslib.es6.js ***!
  \*********************************************************************************************************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (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__, "__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)
            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 __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 };
}


/***/ }),

/***/ "oN+8":
/*!*****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/set-version/7.0.2/node_modules/@uifabric/set-version/lib/index.js ***!
  \*****************************************************************************************************************************************************************/
/*! exports provided: setVersion */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _setVersion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setVersion */ "rN9w");
/* 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');
//# sourceMappingURL=index.js.map

/***/ }),

/***/ "ofIo":
/*!******************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/portalContainsElement.js ***!
  \******************************************************************************************************************************************************************************************************************/
/*! exports provided: portalContainsElement */
/***/ (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__(/*! ./findElementRecursive */ "5FCc");
/* harmony import */ var _setPortalAttribute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPortalAttribute */ "hzr/");


/**
 * 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"]);
}
//# sourceMappingURL=portalContainsElement.js.map

/***/ }),

/***/ "pNTJ":
/*!*************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/setVirtualParent.js ***!
  \*************************************************************************************************************************************************************************************************************/
/*! exports provided: setVirtualParent */
/***/ (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);
    }
}
//# sourceMappingURL=setVirtualParent.js.map

/***/ }),

/***/ "pNU6":
/*!****************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/index.js ***!
  \****************************************************************************************************************************************************************/
/*! exports provided: AnimationStyles, AnimationVariables, DefaultPalette, DefaultEffects, DefaultFontStyles, registerDefaultFontFaces, FontSizes, FontWeights, IconFontSizes, createFontStyles, hiddenContentStyle, PulsingBeaconAnimationStyles, getGlobalClassNames, ThemeSettingName, getTheme, loadTheme, createTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, getFocusStyle, focusClear, getFocusOutlineStyle, getThemedContext, HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector, normalize, noWrap, getFadedOverflowStyle, getPlaceholderStyles, ZIndexes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AnimationStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationStyles */ "NS6t");
/* 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__(/*! ./DefaultPalette */ "7iFq");
/* 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__(/*! ./DefaultEffects */ "EGK+");
/* 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__(/*! ./DefaultFontStyles */ "0LsE");
/* 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__(/*! ./fonts */ "jJtL");
/* 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__(/*! ./getFocusStyle */ "Mg3c");
/* 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__(/*! ./hiddenContentStyle */ "Xgq1");
/* 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__(/*! ./PulsingBeaconAnimationStyles */ "Orvz");
/* 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__(/*! ./getGlobalClassNames */ "nj5S");
/* 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__(/*! ./scheme */ "lMRy");
/* 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__(/*! ./theme */ "9259");
/* 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__(/*! ./CommonStyles */ "VHqe");
/* 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__(/*! ./GeneralStyles */ "Wqfn");
/* 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__(/*! ./getFadedOverflowStyle */ "T1Up");
/* 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__(/*! ./getPlaceholderStyles */ "xWgd");
/* 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__(/*! ./zIndexes */ "13cA");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _zIndexes__WEBPACK_IMPORTED_MODULE_15__["ZIndexes"]; });

















//# sourceMappingURL=index.js.map

/***/ }),

/***/ "pYoC":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/Async.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: Async */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

/**
 * 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;
}());

//# sourceMappingURL=Async.js.map

/***/ }),

/***/ "rN9w":
/*!**********************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/set-version/7.0.2/node_modules/@uifabric/set-version/lib/setVersion.js ***!
  \**********************************************************************************************************************************************************************/
/*! exports provided: setVersion */
/***/ (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);
        }
    }
}
//# sourceMappingURL=setVersion.js.map

/***/ }),

/***/ "sHQu":
/*!*************************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getVirtualParent.js ***!
  \*************************************************************************************************************************************************************************************************************/
/*! exports provided: getVirtualParent */
/***/ (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__(/*! ./isVirtualElement */ "IEGl");

/**
 * 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;
}
//# sourceMappingURL=getVirtualParent.js.map

/***/ }),

/***/ "u4cQ":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/getId.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: getId, resetIds */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

// 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;
}
//# sourceMappingURL=getId.js.map

/***/ }),

/***/ "vGG9":
/*!****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom/getRect.js ***!
  \****************************************************************************************************************************************************************************************************/
/*! exports provided: getRect */
/***/ (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;
}
//# sourceMappingURL=getRect.js.map

/***/ }),

/***/ "vQgb":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/GlobalSettings.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: GlobalSettings */
/***/ (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__(/*! ./dom/getWindow */ "IV0G");

/**
 * 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];
}
//# sourceMappingURL=GlobalSettings.js.map

/***/ }),

/***/ "wilE":
/*!*******************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/appendFunction.js ***!
  \*******************************************************************************************************************************************************************************************************/
/*! exports provided: appendFunction */
/***/ (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); });
    };
}
//# sourceMappingURL=appendFunction.js.map

/***/ }),

/***/ "wzjj":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/KeyCodes.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: KeyCodes */
/***/ (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
};
//# sourceMappingURL=KeyCodes.js.map

/***/ }),

/***/ "xLAg":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/hoist.js ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: hoistMethods, unhoistMethods */
/***/ (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]; });
}
//# sourceMappingURL=hoist.js.map

/***/ }),

/***/ "xWgd":
/*!*******************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/styling/7.7.2/node_modules/@uifabric/styling/lib/styles/getPlaceholderStyles.js ***!
  \*******************************************************************************************************************************************************************************/
/*! exports provided: getPlaceholderStyles */
/***/ (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
        }
    };
}
//# sourceMappingURL=getPlaceholderStyles.js.map

/***/ }),

/***/ "xbEj":
/*!*************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/initials.js ***!
  \*************************************************************************************************************************************************************************************************/
/*! exports provided: getInitials */
/***/ (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);
}
//# sourceMappingURL=initials.js.map

/***/ }),

/***/ "yGjf":
/*!*******************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/merge-styles/7.8.1/node_modules/@uifabric/merge-styles/lib/index.js ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: mergeStyles, mergeCss, mergeStyleSets, mergeCssSets, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, InjectionMode, Stylesheet, setRTL */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _mergeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeStyles */ "F2Fe");
/* 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__(/*! ./mergeStyleSets */ "XHEg");
/* 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__(/*! ./concatStyleSets */ "Obca");
/* 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__(/*! ./concatStyleSetsWithProps */ "VzDN");
/* 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__(/*! ./fontFace */ "HsmX");
/* 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__(/*! ./keyframes */ "1fkr");
/* 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__(/*! ./Stylesheet */ "ZeYq");
/* 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__(/*! ./StyleOptionsState */ "Oi/Z");
/* 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__(/*! ./version */ "LM2e");









//# sourceMappingURL=index.js.map

/***/ }),

/***/ "zKAJ":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/string.js ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: format */
/***/ (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);
}
//# sourceMappingURL=string.js.map

/***/ }),

/***/ "zlaV":
/*!********************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/dom.js ***!
  \********************************************************************************************************************************************************************************************/
/*! exports provided: elementContains, elementContainsAttribute, findElementRecursive, getChildren, getDocument, getParent, getRect, getVirtualParent, getWindow, isVirtualElement, on, portalContainsElement, raiseClick, DATA_PORTAL_ATTRIBUTE, setPortalAttribute, setVirtualParent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _dom_elementContains__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom/elementContains */ "/qA7");
/* 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__(/*! ./dom/elementContainsAttribute */ "3FSc");
/* 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__(/*! ./dom/findElementRecursive */ "5FCc");
/* 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__(/*! ./dom/getChildren */ "jtZz");
/* 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__(/*! ./dom/getDocument */ "4toK");
/* 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__(/*! ./dom/getParent */ "YUC7");
/* 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__(/*! ./dom/getRect */ "vGG9");
/* 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__(/*! ./dom/getVirtualParent */ "sHQu");
/* 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__(/*! ./dom/getWindow */ "IV0G");
/* 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__(/*! ./dom/isVirtualElement */ "IEGl");
/* 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__(/*! ./dom/on */ "NG5o");
/* 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__(/*! ./dom/portalContainsElement */ "ofIo");
/* 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__(/*! ./dom/raiseClick */ "Fjt+");
/* 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__(/*! ./dom/setPortalAttribute */ "hzr/");
/* 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__(/*! ./dom/setVirtualParent */ "pNTJ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _dom_setVirtualParent__WEBPACK_IMPORTED_MODULE_14__["setVirtualParent"]; });
















//# sourceMappingURL=dom.js.map

/***/ }),

/***/ "zpSB":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** C:/agent/1/_work/5/s/common/temp/node_modules/.onedrive.pkgs.visualstudio.com/@uifabric/utilities/7.5.0_b00af71b99b3978738e618b37212a8b6/node_modules/@uifabric/utilities/lib/hoistStatics.js ***!
  \*****************************************************************************************************************************************************************************************************/
/*! exports provided: hoistStatics */
/***/ (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;
}
//# sourceMappingURL=hoistStatics.js.map

/***/ })

/******/ })});;
//# sourceMappingURL=uifabric-styling-bundle.js.map

    return (function() {
      var initMap = {};
      function getDependencyComponents(dependencies, depsMap) {
        var result = [];
        for (var i = 0; i < dependencies.length; i++) {
           result.push(initMap[depsMap[dependencies[i]]]);
        }

        return result;
      }

    defineCache['1e384972-6346-49b4-93c7-b2e6763938e6_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['1e384972-6346-49b4-93c7-b2e6763938e6_1.10.0'].deps, {}));
    initMap['73e1dc6c-8441-42cc-ad47-4bd3659f8a3a'] = defineCache['73e1dc6c-8441-42cc-ad47-4bd3659f8a3a_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['73e1dc6c-8441-42cc-ad47-4bd3659f8a3a_1.10.0'].deps, {}));
    initMap['7263c7d0-1d6a-45ec-8d85-d4d1d234171b'] = defineCache['7263c7d0-1d6a-45ec-8d85-d4d1d234171b_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['7263c7d0-1d6a-45ec-8d85-d4d1d234171b_1.10.0'].deps, {"@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a"}));
    initMap['78359e4b-07c2-43c6-8d0b-d060b4d577e8'] = defineCache['78359e4b-07c2-43c6-8d0b-d060b4d577e8_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['78359e4b-07c2-43c6-8d0b-d060b4d577e8_1.10.0'].deps, {"@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b"}));
    initMap['cc2cc925-b5be-41bb-880a-f0f8030c6aff'] = defineCache['cc2cc925-b5be-41bb-880a-f0f8030c6aff_5.1.55'].factory.apply(null, getDependencyComponents(defineCache['cc2cc925-b5be-41bb-880a-f0f8030c6aff_5.1.55'].deps, {}));
    initMap['229b8d08-79f3-438b-8c21-4613fc877abd'] = defineCache['229b8d08-79f3-438b-8c21-4613fc877abd_0.1.2'].factory.apply(null, getDependencyComponents(defineCache['229b8d08-79f3-438b-8c21-4613fc877abd_0.1.2'].deps, {}));
    initMap['e40f8203-b39d-425a-a957-714852e33b79'] = defineCache['e40f8203-b39d-425a-a957-714852e33b79_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['e40f8203-b39d-425a-a957-714852e33b79_1.10.0'].deps, {"@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8"}));
    initMap['1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8'] = defineCache['1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8_1.10.0'].deps, {"@microsoft/sp-dynamic-data":"e40f8203-b39d-425a-a957-714852e33b79","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8"}));
    initMap['c07208f0-ea3b-4c1a-9965-ac1b825211a6'] = defineCache['c07208f0-ea3b-4c1a-9965-ac1b825211a6_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['c07208f0-ea3b-4c1a-9965-ac1b825211a6_1.10.0'].deps, {"@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8"}));
    initMap['0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d'] = defineCache['0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d_16.8.5'].factory.apply(null, getDependencyComponents(defineCache['0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d_16.8.5'].deps, {}));
    initMap['f97266fb-ccb7-430e-9384-4124d05295d3'] = defineCache['f97266fb-ccb7-430e-9384-4124d05295d3_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['f97266fb-ccb7-430e-9384-4124d05295d3_1.10.0'].deps, {}));
    initMap['467dc675-7cc5-4709-8aac-78e3b71bd2f6'] = defineCache['467dc675-7cc5-4709-8aac-78e3b71bd2f6_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['467dc675-7cc5-4709-8aac-78e3b71bd2f6_1.10.0'].deps, {"@microsoft/sp-dynamic-data":"e40f8203-b39d-425a-a957-714852e33b79","@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-page-context":"1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8","@microsoft/load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@microsoft/sp-http":"c07208f0-ea3b-4c1a-9965-ac1b825211a6","@microsoft/decorators":"f97266fb-ccb7-430e-9384-4124d05295d3"}));
    initMap['aa0a46ec-1505-43cd-a44a-93f3a5aa460a'] = defineCache['aa0a46ec-1505-43cd-a44a-93f3a5aa460a_16.8.5'].factory.apply(null, getDependencyComponents(defineCache['aa0a46ec-1505-43cd-a44a-93f3a5aa460a_16.8.5'].deps, {"react":"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d"}));
    initMap['17ce0976-e69a-4355-be84-89b69a74717d'] = defineCache['17ce0976-e69a-4355-be84-89b69a74717d_0.1.0'].factory.apply(null, getDependencyComponents(defineCache['17ce0976-e69a-4355-be84-89b69a74717d_0.1.0'].deps, {"react":"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d","@microsoft/load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd"}));
    initMap['8217e442-8ed3-41fd-957d-b112e841286a'] = defineCache['8217e442-8ed3-41fd-957d-b112e841286a_0.8.16'].factory.apply(null, getDependencyComponents(defineCache['8217e442-8ed3-41fd-957d-b112e841286a_0.8.16'].deps, {"@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@ms/odsp-utilities-bundle":"cc2cc925-b5be-41bb-880a-f0f8030c6aff"}));
    initMap['1c6c9123-7aac-41f3-a376-3caea41ed83f'] = defineCache['1c6c9123-7aac-41f3-a376-3caea41ed83f_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['1c6c9123-7aac-41f3-a376-3caea41ed83f_1.10.0'].deps, {"@ms/sp-telemetry":"8217e442-8ed3-41fd-957d-b112e841286a","@microsoft/sp-dynamic-data":"e40f8203-b39d-425a-a957-714852e33b79","@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-page-context":"1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8","@microsoft/load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@microsoft/sp-http":"c07208f0-ea3b-4c1a-9965-ac1b825211a6"}));
    initMap['0773bd53-a69e-4293-87e6-ba80ea4d614b'] = defineCache['0773bd53-a69e-4293-87e6-ba80ea4d614b_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['0773bd53-a69e-4293-87e6-ba80ea4d614b_1.10.0'].deps, {"@ms/sp-telemetry":"8217e442-8ed3-41fd-957d-b112e841286a","@microsoft/sp-component-base":"467dc675-7cc5-4709-8aac-78e3b71bd2f6","@microsoft/sp-loader":"1c6c9123-7aac-41f3-a376-3caea41ed83f","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@microsoft/decorators":"f97266fb-ccb7-430e-9384-4124d05295d3"}));
    initMap['f8a8ad94-4cf3-4a19-a76b-1cec9da00219'] = defineCache['f8a8ad94-4cf3-4a19-a76b-1cec9da00219_0.1.0'].factory.apply(null, getDependencyComponents(defineCache['f8a8ad94-4cf3-4a19-a76b-1cec9da00219_0.1.0'].deps, {"@ms/sp-telemetry":"8217e442-8ed3-41fd-957d-b112e841286a","@microsoft/sp-loader":"1c6c9123-7aac-41f3-a376-3caea41ed83f","@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-page-context":"1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8","react":"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d","@microsoft/load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@microsoft/sp-http":"c07208f0-ea3b-4c1a-9965-ac1b825211a6","@microsoft/decorators":"f97266fb-ccb7-430e-9384-4124d05295d3","@ms/odsp-utilities-bundle":"cc2cc925-b5be-41bb-880a-f0f8030c6aff"}));
    initMap['4df9bb86-ab0a-4aab-ab5f-48bf167048fb'] = defineCache['4df9bb86-ab0a-4aab-ab5f-48bf167048fb_1.10.0'].factory.apply(null, getDependencyComponents(defineCache['4df9bb86-ab0a-4aab-ab5f-48bf167048fb_1.10.0'].deps, {"@ms/sp-telemetry":"8217e442-8ed3-41fd-957d-b112e841286a","@ms/sp-load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd","@ms/sp-suite-nav":"f8a8ad94-4cf3-4a19-a76b-1cec9da00219","@microsoft/sp-component-base":"467dc675-7cc5-4709-8aac-78e3b71bd2f6","@microsoft/sp-loader":"1c6c9123-7aac-41f3-a376-3caea41ed83f","@microsoft/sp-lodash-subset":"73e1dc6c-8441-42cc-ad47-4bd3659f8a3a","@microsoft/sp-core-library":"7263c7d0-1d6a-45ec-8d85-d4d1d234171b","@microsoft/sp-page-context":"1c4541f7-5c31-41aa-9fa8-fbc9dc14c0a8","@microsoft/sp-extension-base":"0773bd53-a69e-4293-87e6-ba80ea4d614b","react":"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d","react-dom":"aa0a46ec-1505-43cd-a44a-93f3a5aa460a","@ms/uifabric-styling-bundle":"17ce0976-e69a-4355-be84-89b69a74717d","@microsoft/load-themed-styles":"229b8d08-79f3-438b-8c21-4613fc877abd","@microsoft/sp-diagnostics":"78359e4b-07c2-43c6-8d0b-d060b4d577e8","@microsoft/sp-http":"c07208f0-ea3b-4c1a-9965-ac1b825211a6","@microsoft/decorators":"f97266fb-ccb7-430e-9384-4124d05295d3","@ms/odsp-utilities-bundle":"cc2cc925-b5be-41bb-880a-f0f8030c6aff"}));

      var starter = initMap['1c6c9123-7aac-41f3-a376-3caea41ed83f']._SPStarter;
      starter._setBundledComponents(initMap);
      return starter;
    })();
  } catch (error) {
    // An error occurred loading the assembly
    debugger;
    
    if (!(window.location.search || '').toLowerCase().match(/noredir=true/i)) {
      window.location.href = '/_layouts/15/error.aspx?ErrorText=Can\'t%20load%20the%20application%20on%20this%20page.%20Use%20the%20browser%20Back%20button%20to%20retry.%20If%20the%20problem%20persists%2C%20contact%20the%20administrator%20of%20the%20site%20and%20give%20them%20the%20information%20in%20Technical%20Details.&ErrorDetails=' + 
        encodeURIComponent(error) + '&ErrorCategory=spfx';
    } else {
      console.error(error);
    }
  }
})();